在不断发展的 SEO 天下中,保持领先地位至关主要。如果你像我一样,你会创造随着搜索算法变得越来越繁芜和竞争越来越激烈,SEO资源保持不变乃至减少。因此,我们必须不断寻求创新方法来简化事情流程并提高生产力,才能坚持生存。
我们都知道自动化可以帮助我们完成更多事情,而无需增加职员或预算。我相信你们中的许多人都问过自己是否该当深入编码天下以学习如何自动化某些任务。或者,你们中的一些人乃至可能考试测验哀求一些开拓资源来实现这一目标。
如果您仍在阅读,则意味着您在上面认出了自己。这篇文章是写给你的,我的病友!

虽然学习如何编码不一定是办理方案,但仍旧有希望的灯塔:进入 ChatGPT。
凭借其处理各种任务的卓越能力,ChatGPT 可以助您一臂之力,在本文中,我们将磋商 ChatGPT 如何彻底改变您实现 SEO 自动化的办法,使您无需具备丰富的编码知识即可取得显著的成果。
但首先,让我们更深入地研究自动化的观点及其在 SEO 领域的意义。
什么是自动化?自动化是利用技能和工具来简化和简化重复性或耗时任务的过程。它可以让您将宝贵的韶光和精力分配给更具计策性的举措,而平凡和重复的活动则由其他系统无缝处理。
有效利用自动化的关键步骤之一是确定要自动化的精确任务。
虽然并非所有任务都适宜自动化,但许多流程可以分解为可成功自动化的可管理组件。从长远来看,通过识别这些组件,您可以节省大量韶光和精力。
清晰的问题定义对付任何自动化项目都是至关主要的。
它包括理解手头的任务、识别痛点以及定义期望的结果。明确定义的问题陈述为为 ChatGPT 编写有效的提示奠定了根本,并确保自动化流程与预期目标保持同等。
一旦任务被识别并分解,就可以为 ChatGPT 编写提示了。
提示充当供应给模型的指令或查询以天生所需的相应。编写有效的提示须要在足够详细以辅导模型和许可模型灵巧地天生创造性和准确的相应之间取得平衡。
如何选择自动化项目?1. 首先列出您每天或每周实行的任务。这些重复性任务的范围从数据剖析和报告天生到关键字研究或内容优化以及您能想到的险些所有其他任务。
2. 将您的列表分为您对如何自动化有大致理解的任务以及那些看起来具有寻衅性或不熟习的任务。前者可能涉及利用现有的工具、脚本或插件,而后者可能须要更多的研究或学习。
3. 优先考虑自动化时能带来最显著效益的任务。考虑诸如您将节省的韶光、可能的准确性、可扩展性和潜在的投资回报率等成分。或者大略地考虑一下它是否可以让你保持理智。选择一项与您的目标符合且能够为您的日常事情带来切实改进的任务。
在实践中看到它我曾经考虑过我可能想要自动化哪些重复性任务,并列出了一个非常简短的列表 - 事实上,从我记事起,我就一贯在自动化尽可能多的事情。然而,有一些事情我甘心不必做,纵然它们每个月只发生几次。
从我的列表中,我找到了一个可以节省我一些韶光并且还有可能提升我的报告质量的方法:向 Looker Studio 中的图表添加 Google 更新注释。
对付下面的示例,我刚刚利用了以下免费工具和做事:
Google 的搜索状态仪表板- 我将利用它作为注释的数据源Google 表格 - 我可以将数据保留在这里,并将其与我的 Analytics 数据稠浊在 Looker Studio 中ChatGPT - 免费版本就足够了,由于我们不须要任何 Plus 功能。请记住不要分享任何敏感信息,由于您的输入将反馈到学习算法中作为下一步,我开始思考这可能如何运作。我过去确实有自动化履历,有时可以当场想出一个好的办理方案。
但如果您正在办理一个不随意马虎找到办理方案的问题,请不要担心。在这里,您可以利用 ChatGPT 寻求潜在的办理方案,也可以进行搜索(通过您最喜好的搜索引擎)以查找其他人针对同一问题提出的办理方案。由于 ChatGPT 有时可能有点太有创意,我更喜好坚持经典的“只需 Google 即可”。我坚信我永久不是第一个碰着特定问题的人。
以下是我对自动化建议任务的想法:
我可以直接从Google的更新页面获取更新数据。它不仅值得相信,而且谷歌无论如何都会保持该列表的最新状态,以是我知道这是一个很好的资源。如果我可以在 Google Sheets 中将该数据以列脸色势获取,那么我可以在 Looker studio 中轻松地将其稠浊,并将其与 GA 或 GSC 数据叠加。我知道我可以利用 Google 表格中的 IMPORTHTML 函数从网页上抓取信息,因此我须要找出该信息的格式。利用 Chrome 开拓职员工具,我可以检讨代码并查看是否添加了更新在一个表中。每年都有自己的表格,因此我须要将多个表格导入 Google 表格。ALT/标题:Google 更新页面和 Chrome 开拓者工具呈现的 HTML 代码的屏幕截图,显示该页面是利用表格构建的。
为了验证我的思路,我将快速运行表格中的公式,看看数据是否按须要输入:
ALT/标题:Google 表格中的屏幕截图显示第一个表中的数据
虽然此公式有效,但它仅引入页面上的第一个表(或特定的一个表,但不是全部)。如果我想要的只是今年的更新,那么利用这个公式就足够了。不幸的是,我希望在报告中包含历史数据,因此我须要导入所有表格。
现在我可以将上面的条记总结为 ChatGPT 的提示:
ALT/标题:ChatGPT 提示的屏幕截图,讯问:您好,我想利用 ImportHTML 功能将网页上多个表中的信息获取到 Google 表格中。如果有多个表,我该怎么办?
ALT/标题:ChatGPT 相应的屏幕截图,个中包含有关如何从网页导入表的详细信息。
有趣的是——我们肯定会陷入“我须要帮助”的田地,由于我不熟习 AppScript。我还把稳到,除了代码之外,我还得到相识释和注释——这对我理解它的功能非常方便。
我转到 Google Sheets > 扩展 > AppScript 并在此处创建一个新项目。我将其命名为“Google Updates”,然后将此处的代码更换为 ChatGPT 供应的代码。
在 AppScript 中进行任何变动时以及运行代码之前,请务必点击“保存”。
否则,您可能会因更换但未保存的代码而涌现缺点,并且必须花韶光调试不存在的问题。
看起来 ChatGPT 为我创建了一个分外的函数,我可以在表格中调用它 - 我按照解释操作,并将该函数与我想要从中获取更新的 URL 结合利用:
=importMultipleTablesFromURL(" https://status.search.google.com/products/rGHU1u87FJnkP6W2GwMi/history ")
但我收到一个缺点:
ALT/标题:显示缺点的 Google 表格的屏幕截图
我什至没有阅读缺点,我只是将其复制到 ChatGPT 中:
ALT/标题:描述 Google 表格缺点的 ChatGPT 提示的屏幕截图
利用我什至不理解的这条,ChatGPT 能够翻译我须要授权才能在表格中覆盖。然后它为我更新代码以包含此内容。
运行新代码后,我确实收到了“审查权限”对话框:
ALT/标题:AppScript 中的“须要授权”对话框的屏幕截图
然后我就可以验证这个脚本并许可它覆盖我的表格。
我再次运行代码,令人惊异的是,我又收到了另一个缺点:
ALT/Caption:AppScript 实行日志缺点的屏幕截图
冲洗并重复,我将这个缺点反馈给ChatGPT。事实上,我这样做了几次,所有的缺点都涌现了,并且我不断得到新的代码供我考试测验。我只是在这里分享缺点和回答的顶行:
ALT/标题:描述缺点和相应的 ChatGPT 提示的屏幕截图
ALT/标题:描述缺点和相应的 ChatGPT 提示的第二个屏幕截图
ALT/标题:描述缺点和相应的 ChatGPT 提示的另一个屏幕截图
我在这里所做的险些便是调试。我没有自己检讨代码并试图找出错误是什么以及如何修复它们,而是将它们反馈给 ChatGPT,它会自行调试。
虽然中间有一些来回,但全体过程不到 5 分钟。我终于得到这个代码:
ALT/标题:ChatGPT 代码片段的屏幕截图
复制粘贴。节省。跑步。我终于成功实行了。切换到我的事情表,这是我看到的:
ALT/标题:显示 3 个表格的 Google Sheets 数据的屏幕截图
到目前为止,统统都很好!
所有表格都正在导入,是时候进行一些改进了:
现在我可以将所有这些信息一次性或一次部分反馈给 ChatGPT。我以为我须要按类型对要求进行分组,以是我首先考试测验这样做:
ALT/标题:ChatGPT 提示的屏幕截图,哀求仅保留第一个表的标题,并且在更新时不要覆盖数据
从下面的结果可以看出,这个哀求不足明确。 ChatGPT 将所有数据放入一列中:
ALT/标题:Google 表格的屏幕截图,在一列中显示所有表格数据
是时候让我的沟通更加清晰,并阐明我所看到的以及我想要得到的信息了:
ALT/标题:ChatGPT 提示的屏幕截图更清楚地讯问要保留哪些标头
ALT/标题:Google 表格的屏幕截图,显示三个表格,中间有两个空行
肯定越来越近了!
我现在只须要删除那些空行。我将再次阐明我所看到的以及我想要的结果。
ALT/标题:ChatGPT 提示哀求删除空行的屏幕截图
一些改进:
ALT/标题:ChatGPT 提示的屏幕截图,哀求再次删除空行,由于仍留下一行
并成功:
ALT/标题:Google 表格的屏幕截图,显示所有三个表格列为一个表格
现在进行下一个改进:
ALT/标题:ChatGPT 提示哀求从 A 列中提取更新名称的屏幕截图
结果不是我所期望的,以是我决定举一些例子,涵盖我能看到的所有模式。末了,我们到达了那里:
ALT/标题:Google 表格的屏幕截图,显示表格和带有更新名称的新列
那不是已经很俊秀了吗?让我们看看是否还能得到更新的结束日期,由于该信息不是由 Google 直接供应的。
ALT/标题:ChatGPT 提示哀求打算更新长度的屏幕截图
请把稳回答中 ChatGPT 如何知道 B 列和 C 列中有哪些值?那只是由于我们之条件到过它们 – ChatGPT 实际上无法看到我们的 Google 表格。
ALT/标题:Google 表格的屏幕截图,显示持续韶光为无效持续韶光格式
查看具有无效持续韶光格式的行,我们可以很快看到只要持续韶光不包括小时,它们就会发生。我决定哀求 ChatGPT 在打算结束日期之前将持续韶光四舍五入到整天 - 这样我们就可以绕过该列中包含不同类型数据的问题。
ALT/标题:Google 表格的屏幕截图显示了预期的持续韶光
既然数据看起来不错,那么只剩下一件事情要做了——把这整件事列入韶光表。
这可以通过利用触发器从 AppScript 完成,但由于我们利用的是 ChatGPT,我们不妨向它讯问末了一个要求:
ALT/标题:ChatGPT 提示哀求添加每周触发器的屏幕截图
瞧,这是包含触发器的终极代码:
function importTableAndCalculateUpdateType() {
var url = "https://status.search.google.com/products/rGHU1u87FJnkP6W2GwMi/history"; // Replace with the URL of the webpage containing the tables
var response = UrlFetchApp.fetch(url);
var content = response.getContentText();
var tables = content.match(/<table[\s\S]?<\/table>/g);
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var lastRow = sheet.getLastRow();
// Clear the sheet except for the first row (header)
if (lastRow > 1) {
sheet.getRange("A2:E" + lastRow).clearContent();
}
var data = [];
tables.forEach(function(table, index) {
var tempData = [];
var tableRows = table.match(/<tr[\s\S]?<\/tr>/g);
tableRows.forEach(function(rowHTML, rowIndex) {
var rowData = [];
var cells = rowHTML.match(/<t[dh][\s\S]?<\/t[dh]>/g);
cells.forEach(function(cellHTML) {
var cellText = cellHTML.replace(/<[^>]+>/g, '').trim();
rowData.push(cellText);
});
if (rowData.length > 0 && !(index > 0 && rowIndex === 0)) {
tempData.push(rowData);
}
});
if (tempData.length > 0) {
data.push(tempData);
}
});
var startColumn = 1; // Starting column to paste data
var startRow = 1; // Starting row to paste data
for (var i = 0; i < data.length; i++) {
var numRows = data[i].length;
var numCols = data[i][0].length;
sheet.getRange(startRow, startColumn, numRows, numCols).setValues(data[i]);
startRow += numRows;
}
var updateTypeColumn = 4; // Column index for "Update Type" (column D)
var endDateColumn = 5; // Column index for "End date" (column E)
// Check and set header for "Update Type" and "End date" if they don't exist
if (sheet.getRange(1, updateTypeColumn).getValue() !== 'Update Type') {
sheet.getRange(1, updateTypeColumn).setValue('Update Type');
}
if (sheet.getRange(1, endDateColumn).getValue() !== 'End date') {
sheet.getRange(1, endDateColumn).setValue('End date');
}
for (var j = 2; j <= sheet.getLastRow(); j++) {
var startDate = sheet.getRange(j, 2).getValue(); // Start date from column B
var duration = sheet.getRange(j, 3).getValue(); // Duration from column C
var endDate = calculatePotentialEndDate(startDate, duration);
sheet.getRange(j, endDateColumn).setValue(endDate);
var text = sheet.getRange(j, 1).getValue();
var updateTypes = extractUpdateTypes(text);
if (updateTypes.length > 0) {
var formattedText = updateTypes.map(word => formatText(word.replace(/^\d{4}\s/, ''))).join(' ');
sheet.getRange(j, updateTypeColumn).setValue(formattedText);
} else {
sheet.getRange(j, updateTypeColumn).setValue('Other');
}
}
}
function createWeeklyTrigger() {
var day = 1; // Monday
var hour = 1; // 1 a.m. GMT
var timezone = "GMT"; // Set the timezone
ScriptApp.newTrigger("importTableAndCalculateUpdateType")
.timeBased()
.onWeekDay(day)
.atHour(hour)
.inTimezone(timezone)
.create();
}
function extractUpdateTypes(text) {
var matches = text.match(/\d{4}\s([\w\s]+?)\supdate/ig);
return matches ? matches.map(match => match.replace(/\supdate$/i, '').trim()) : [];
}
function formatText(str) {
return str.toLowerCase().replace(/(?:^|\s)\S/g, function(match) {
return match.toUpperCase();
});
}
function calculatePotentialEndDate(startDate, duration) {
var daysMatch = duration.match(/^(\d+)\s+days?/i);
var hoursMatch = duration.match(/^(\d+)\s+hours?,?\s?[\s\S]/i);
if (daysMatch) {
var days = parseInt(daysMatch[1]);
var endDate = new Date(startDate);
endDate.setDate(startDate.getDate() + days);
return endDate;
} else if (hoursMatch) {
return new Date(startDate.getTime() + 1 24 60 60 1000); // Adding 1 day
} else {
return 'Invalid Duration Format';
}
}
这是最好的方法吗?可能不会。好处是我在 30 分钟内就完成了,只须要一些会话技巧,而且我不必花几个月的韶光学习脚本措辞。但是,如果我将来确实想学习,ChatGPT 会为我供应可能须要的所有阐明。
包起来如果您来这里只是由于想要成品,请随时创建我的 Google 更新表的副本,您可以将其与 Looker Studio 中的剖析数据稠浊。
以下示例展示了将此数据叠加在流量韶光线上后的报告的外不雅观:
ALT/标题:Looker Studio 仪表板的屏幕截图,显示利用 Google 更新注释的网站流量韶光线
您还可以对开始日期和结束日期进行三向稠浊,然后您可以选择任何更新并在图表上查看开始日期和结束日期。您乃至可以给它们不同的颜色。
ALT/标题:Looker Studio 稠浊面板的屏幕截图,显示三向稠浊
ALT/标题:Looker Studio 仪表板的屏幕截图,显示流量韶光线上的 Coe 更新注释
或者,如果您乐意,您可以创建 Looker Studio 仪表板的副本,将 Google Analytics 数据与 Google Sheets 中的 Google Update 注释结合起来,并查看其设置办法。
如果您有兴趣利用 ChatGPT 自动实行不同类型的 SEO 任务,请连续阅读:
我希望早点做的事情:
见告 ChatGPT 在代码中利用什么 URL,这样我就不必每次都复制/粘贴它。见告它我想要公式所在的列和行也是如此。如果利用 AppScript(以及可能的任何其他集成开拓环境),请始终在粘贴后和运行之前保存新代码 - 这将让您不必办理许多不应该存在的缺点。利用示例,但要清楚这些示例用于创建通用模式,而不仅仅是与那些特定值一起利用。ChatGPT 的好坏取决于您的水平 - 如果您不知道自己想要什么,它很可能不会供应给您。如何改进这个过程:
与开拓职员交谈,理解什么是可能的以及什么是可供您利用的。考试测验利用伪代码指令而不是自由辞吐 - 这可以确保减少阐明和缺点结果的空间。不知道该怎么做?大概你也可以向 ChatGPT 寻求帮助。以渐进增强为目标——从小处动手,构建繁芜性,不要试图一次完成所有事情。查看您的数据并把稳模式的变革,然后确保供应涵盖所有模式的 ChatGPT 示例。如果您的代码变得太长(ChatGPT 相应太长),您可以仅关注特定功能,而不是讯问完全代码。不管若何,ChatGPT 都会有这样做的方向。末了的想法如果您决定考试测验此过程,请考虑与其他 SEO 分享您的造诣。您的成功故事可能会勉励人们采取这种方法并增强他们自己的 SEO 事情流程。
此外,在与 ChatGPT 互动时,请记住利用大量的“请”和“感激”——你永久不知道人工智能终极统治天下时会记住什么!