SEO & Digital Marketing News Round-Up 5 October to 19 October 2026

TL;DR

The September spam update finished on 8 October after 13 days and 16 hours. Three waves of ranking volatility hit sites along the way. Google then quietly tightened its helpful content guidance, published its first official crawl, index and recovery timing ranges, and added more inline links, carousels and creator profiles to AI Mode. OpenAI shipped GPT 6 with Intelligent UI. Google followed with Gemini 4 Argon. Bing opened a Topics Portfolio beta that may be the best free AI visibility report currently available.

New since Friday: Fresh ranking volatility spiked over the weekend of 17 to 19 October. Google denies a new update. The industry suspects one. OpenAI confirmed a ChatGPT bug that dropped UTM tags on outbound links from 8 to 15 October. Nozzle revealed that roughly 8% of Google SERPs served to rank trackers since mid September were poisoned with fake results. Google also pushed Gemini 4 Argon into Antigravity and added a Follow button to Discover videos.

Three jobs this week: date impact analysis from 24 September to 8 October, mark 8 to 15 October in analytics as a ChatGPT data glitch, and claim the Bing Topics Portfolio beta.

What’s new since Friday 16 October

  • 15 October: Google rolled more inline links, source blocks, article carousels and creator profile links into AI Mode and AI Overviews.
  • 16 October: A ranking volatility spike hit the SERPs. Barry Schwartz flagged an unconfirmed update. Google’s dashboard still shows nothing.
  • 14 to 15 October: OpenAI confirmed and fixed a bug that stripped UTM tags from ChatGPT outbound links between 8 and 15 October. Adobe tracked roughly 31,000 ChatGPT visits per day misclassified as direct traffic across one 500 page panel.
  • 10 October: Nozzle published research showing 8% of SERPs served to rank trackers since 13 September were poisoned, versus a baseline of 0.17%. The share peaked near 27% between 27 and 29 September.
  • 16 October: Gemini 4 Argon reached Google Antigravity for AI Pro subscribers. Google Discover added a Follow button to its video content viewer.
  • Over the weekend of 17 to 19 October: WebmasterWorld threads filled with reports of near zero traffic, stale News and Discover feeds, and the strong suspicion of a core update that Google has not confirmed.

Fourteen days, three waves of volatility, two major AI launches, one giant data glitch. This round up covers 5 October to 19 October 2026, what it means, and what to do about it.


What To Actually Know

Six developments shape planning for the rest of Q4:

  1. The September 2026 spam update finished on 8 October at 04:37 ET. Rollout time: 13 days and 16 hours. Normal spam updates in 2026 took two days. Google called this one “a normal spam update.” Barry Schwartz, Glenn Gabe and Lily Ray all described effects closer to a core update.
  2. Fresh volatility hit on 16 October. It kept running through the weekend. Google’s Search Status Dashboard shows no new update. Forum chatter leans heavily towards one being in progress.
  3. Google published official crawl, index and recovery timing ranges at Search Central Live Deep Dive Europe on 2 October. Core update recovery typical: 3 to 6 months. Slowest: 6 months to a year.
  4. Helpful content guidance tightened on authorship and AI on 1 October and again on 5 October. Fake author profiles are now called deception. Unreviewed AI content gets called out by name. Spam policy did not change. The quality lens did.
  5. OpenAI shipped GPT 6 and Intelligent UI on 7 and 8 October. Google followed with Gemini 4 Argon on 13 October. Answers now contain interactive tools, forms and charts. Plain text answers are becoming the exception.
  6. Rank tracking data is unreliable. Nozzle found Google serving fake results to tracker tools on 8% of SERPs since mid September. Combined with the ChatGPT UTM bug from 8 to 15 October, nothing outside Search Console or Bing Webmaster Tools can be fully trusted right now.

1. The September 2026 Spam Update finished, but the aftershocks haven’t

Google Search Central confirmed completion on 8 October. The quote: “The rollout was complete as of October 8, 2026.” Rollout time: 13 days and 16 hours. That’s longer than any 2026 spam update by an order of magnitude.

The 2026 spam update timeline

Update Started Finished Rollout time
March 2026 24 Mar 25 Mar About 19.5 hours
June 2026 24 Jun 26 Jun About 2 days 1 hour
August 2026 18 Aug 21 Aug About 2 days 16 hours
September 2026 24 Sep 8 Oct About 13 days 16 hours

The three waves of volatility

Relative volatility across the rollout. Aggregated signal from Semrush Sensor, Mozcast, AccuRanker and WebmasterWorld threads.

24 Sep
Launch, moderate

25 to 27 Sep
Wave 1, very high

28 to 29 Sep
Quiet

30 Sep to 1 Oct
Wave 2, high

2 to 3 Oct
Elevated

4 to 6 Oct
Wave 3, strongest signal

7 Oct
Winding down

8 Oct
Rollout complete

16 to 19 Oct
New spike, source unconfirmed

Sources: Barry Schwartz (Search Engine Roundtable), Glenn Gabe (G Squared Interactive), aggregated via Numinix and Distribb.

What got hit, what came back

Lily Ray flagged a representative casualty. A local services site had 143 county landing pages built from a single template. Traffic rose fast, held, then evaporated. The pattern repeated across several site categories:

  • Programmatic or templated pages with little unique value.
  • Unreviewed AI content at scale.
  • Doorway pages that funnel traffic to a different destination.
  • Parasite SEO setups piggybacking on domains with trust they did not earn.

On the recovery side, Glenn Gabe reported Reddit’s AI translated threads climbing again in Italy, Germany, Brazil and France after being crushed by the May and June updates. Edward Sturm posted that Reddit’s estimated organic traffic in Semrush hit an all time high. One site hit by the August 2026 update went from close to zero to roughly 8,000 clicks per day during this rollout and reappeared in AI Overviews and AI Mode.

What the community is saying

“Google called this ‘a normal spam update’ on LinkedIn. Taking two weeks to roll out is not normal, and the impact felt core update adjacent for a lot of sites.”

Barry Schwartz, Search Engine Roundtable, 8 October

“Several site owners emailed me about large drops starting 30 September. This update rolled out in stages. The industry just saw them as one update.”

Glenn Gabe, G Squared Interactive

“Every single website I monitor or have analytics access to is seeing barely any traffic today.”

WebmasterWorld member, 16 October

“Sigh, was hoping that the end of the update would stabilize things, but it’s just made them worse.”

WebmasterWorld member, 16 October

“Seems like a Core update on the way.”

WebmasterWorld member, 19 October

Charles Floate flagged a different problem on LinkedIn. The major SEO suites look out of sync with Search Console. Google’s anti scraping changes are hiding the real picture from third party tools. Ahrefs posted a notice that some SERP data may be inconsistent during the rollout.


2. Google published its first official crawl, index and recovery times

At Search Central Live Deep Dive Europe in Barcelona on 2 October, Google’s Gary Illyes shared the first on record “typical” and “slowest” timing ranges for the full search pipeline. Search Engine Journal published them on 4 October. Think of these as the numbers finally safe to quote to a client.

Crawling and indexing

Event Typical Slowest
New URL discovered About 20 hours Weeks to never
Known URL refreshed About 30 days Weeks to never
Sitemap processing About 24 hours Up to 14 days, or never
End to end indexing About 1.5 hours Months, or never (quality)
Canonicalisation change 1 to 3 weeks Months
Site move 1 to 3 months 6 months to a year or more

Search results and recovery

Event Typical Slowest
Title change picked up 1 to 2 days Several weeks to months
Snippet change picked up 1 to 2 days Several weeks to months
GSC URL removal (owner) About 2 hours 24 hours
Manual action removal 1 to 2 weeks 4 to 6 weeks, longer for dormant sites
Core update recovery 3 to 6 months 6 months to a year

Illyes was clear that these are reference points, not deadlines. The typical core update recovery of 3 to 6 months is the single most useful stat Google has volunteered this year. It settles plenty of nervous conversations.


3. Google quietly tightened its helpful content and AI guidance

No new algorithm was announced. Instead, Google edited two Search Central documents on 1 October and again on 5 October. The pages: helpful content, and generative AI content. Barry Schwartz surfaced the authorship change on 6 October.

Three changes that matter

  1. Fake author profiles are now explicitly deception. The updated page calls out AI headshots, invented names and false credentials. Deception makes a page untrustworthy to users and to automated quality systems. The last phrase is new.
  2. Unreviewed AI content gets named directly. The generative AI guide tells teams to manually fact check AI output before publishing. Titles, meta descriptions, structured data and image alt text all included.
  3. Main Content got elevated. The helpful content page now defines Main Content as the primary thing that answers the user. Four quality markers follow: effort, originality, skill and experience, and accuracy.

At a separate European event on 5 October, Google reportedly told attendees that spam updates now use AI to detect AI spam. The most 2026 sentence of the year, and a strong hint at what the September rollout targeted.

Second order effects came fast. On 2 and 3 October, affiliate networks began asking publishers for proof of human authorship. By week two, some unionised newsrooms reportedly signed contracts banning synthetic bylines. Any content supply chain that includes third party writers now faces a compliance headache for Q4.


4. AI search: GPT 6, Gemini 4 Argon, and the end of plain text answers

The biggest week for AI search product news in 2026. Six releases in nine days:

Date Release Why it matters
5 Oct OpenAI visual ads in ChatGPT Native ad units alongside image generation. First US advertisers testing this month.
7 Oct GPT 6 and Intelligent UI for paid tiers Answers now contain interactive tools, forms, charts and mini apps.
8 Oct GPT 6 extends to Free and Go tiers About 1.2 billion weekly users now on Intelligent UI.
13 Oct Gemini 4 Argon rolls out in AI Mode AI Pro and Ultra get it worldwide. More direct answers, less hedging.
13 Oct Bing Topics Portfolio beta The first free report naming AI topic clusters where competitors show and other sites don’t.
15 Oct AI Mode and AI Overviews get more inline links, source blocks, article carousels and creator profiles Google says preferred source usage grew 7x this year.
16 Oct Gemini 4 Argon reaches Google Antigravity AI Pro subscribers only. Agentic coding workflows get the latest model.

Intelligent UI matters most

For most of ChatGPT’s history the output has been text. GPT 6’s Intelligent UI changes that. The model now picks the format. Plain text, buttons, forms, calculators, labelled diagrams, cooking timelines, playable games. Ask for a dinner for twelve and a quantity calculator appears. Ask about splitting a bill and a bill splitter builds itself in the conversation.

OpenAI also claims GPT 6 Instant starts answering web search questions 44% sooner than GPT 5.6 Instant on average, with better instruction following and less hedging. The Chat tab moved to GPT 6 Sol (paid) and GPT 6 Luna (free) across 7 and 8 October. Work and Codex are unchanged for now.

The SEO problem Intelligent UI creates

When the answer is a built in tool rather than a sentence with a citation, less surface area remains for a link to appear. Expect a two to three month lag before anyone has solid data on how much this reduces citations. Any brand actively tracking AI visibility in ChatGPT should assume the citation to tool ratio shifts against sites, not in favour of them.

Bing Topics Portfolio is the sleeper hit

For practical value, the quietest release of the fortnight was Microsoft’s. Bing Topics Portfolio sits inside Bing Webmaster Tools’ AI performance reports. It groups the grounding queries where a site appears into thematic clusters. Each topic shows:

  • Topic Size: total citations across all sites for that topic.
  • Sites Cited: how many sites appear in that topic cluster.
  • Queries: how many distinct AI queries sit within the topic.

The killer feature: Top Opportunity Queries. A list of strong AI queries where competitors appear and a given site does not. One free report, one claim, one Q4 content brief half written.

What Google added to AI Mode on 15 October

Google rolled a fresh set of changes into AI Mode and AI Overviews:

  • More inline links. Links appear inside words and phrases within AI responses, and higher up than before.
  • Source blocks. When only a few official sites answer a query, a dedicated section at the top lists them with a short explanation.
  • Article carousels. Shown in more locations, more languages and for a wider range of queries. Preferred sources get the spotlight.
  • Related articles with thumbnails. Images and card style layouts aim to feel more clickable.
  • Creator profile links in AI Mode videos. Clicking a creator’s name sends traffic to a Google Search profile page, not the creator’s own site.

The headline figure: Google reports that preferred source usage grew 7x this year. The caveat: no click data has been published, and Barry Schwartz suspects the overall effect on publisher clicks is small.


5. The measurement layer broke twice this fortnight

Two separate stories, same conclusion. Trusting anything outside first party data right now is risky.

Nozzle: 8% of SERPs served to rank trackers were fake

Nozzle published research on 10 October analysing 17.8 million SERPs since 13 September. The headline numbers:

Metric Baseline 13 Sep onwards
Share of SERPs poisoned 0.17% 8.0% average, peaking at 27% on 29 Sep
Organic results kept from previous SERP 88.5% 20.7%
Tracked site falls out of top 10 2.7% 58.6%

In short, Google appears to be serving fake pages to rank trackers rather than refusing their requests. Social sites and forums fill the gap. Reddit visibility rose by 8.0 points on poisoned pages. 77.9% of poisoned SERPs returned to normal within three days. Nozzle credits Google’s broader fight against AI scraping, with rank trackers caught in the collateral damage.

OpenAI’s UTM bug misclassified ChatGPT traffic as direct from 8 to 15 October

Between 8 and 15 October, ChatGPT stopped adding its utm_source=chatgpt.com tag to outbound links. Because ChatGPT also normally strips the HTTP referrer, GA4 and Adobe recorded those visits as direct traffic.

OpenAI acknowledged the error on 14 October and finished the fix roughly 24 hours later. Tagged links are now back to about 95 to 100% of normal levels.

Adobe’s Cedric Huesler analysed 500 pages where ChatGPT normally drives at least 5% of visits. Reported ChatGPT traffic fell by around 31,000 visits per day. Direct traffic rose by around 26,000. Two in every three pages that lost ChatGPT traffic also saw direct traffic rise.

The practical fix: mark 8 to 15 October as a known data glitch in GA4 or Adobe Analytics. Do not change attribution models or channel rules based on that week. Keep UTM parameters on anything AI driven.


6. Google Discover is becoming an “AI concierge,” plus the quick hits

On 12 October, Search Engine Land, PPC Land and Search Engine Journal all picked up a Google job listing for a Principal UX lead on Discover. Salary: up to $382,000. The brief: turn Discover into a proactive, hyper personalised concierge with tighter AI integration. The signal: Discover is being rebuilt as the feed side entry point to AI Mode, in the same way Search was rebuilt as the query side one.

Any publisher relying heavily on Discover traffic should watch this more carefully than any upcoming core update. Previous Discover rebuilds have been brutal on traffic. A Follow button quietly appeared in Discover’s video content viewer on 16 October, which hints at the direction of travel.

Quick hits (dated)

Date Story Action
5 Oct Google appeals the US search monopoly ruling No near term SEO impact. Watch Q1 2027.
5 Oct Dark mode confirmed for Google Search Console Cosmetic. Enjoy.
7 Oct Review rich results disappearing for healthcare pages YMYL health sites should re check schema and expect lower CTR.
8 Oct UGC Fresh Data Program opens applications Only relevant to UGC platforms. Paywall and login content is out.
10 to 12 Oct GSC Performance report lagged about 60 hours Longest delay since Dec 2025. Back to normal by 12 Oct.
13 Oct Google: site migrations can run beyond 4 months Factor into migration planning. Old URLs may still rank for months.
16 Oct Google Ads: online gambling category certification rollout starts Affected advertisers should begin applications.
16 Oct Google Ads: lead forms support lead scoring (up to 12 qualifying answers per question) Review lead form questions for high intent filters.
16 Oct Google Ads API moves to twice monthly releases Factor into dev team sprint planning.
16 Oct Google Dataset Search outage (restored same day) No lasting effect reported.
16 to 19 Oct Fresh ranking volatility, unconfirmed update rumours Check Search Console. Do not act on third party data alone.

What To Actually Do

A short list for the next ten working days, in rough priority order:

  1. Date impact analysis from 24 September to 8 October. Pull clicks, impressions and average position by page type for that window. Compare against the previous four weeks. Pages that lost traffic across both waves are the real spam signal casualties. Pages that dropped in wave one and recovered are noise.
  2. Mark 8 to 15 October as a ChatGPT data glitch in GA4 and Adobe Analytics. Any apparent ChatGPT traffic drop that week was the UTM bug. Direct traffic rose by roughly the same amount it fell. Do not change attribution models based on it.
  3. Run a fake author and AI hallucination audit on the top 20 pages. For each: is the author real and verifiable? If AI assisted, is a documented human review step on record? Flag any page that fails either test.
  4. Claim the Bing Topics Portfolio beta inside Bing Webmaster Tools. Pull the Top Opportunity Queries list. That is a Q4 AI visibility content brief, half written.
  5. Set recovery expectations using Google’s own numbers. 3 to 6 months typical for core update recovery, 6 months to a year worst case. 1 to 2 weeks for manual action removal. Up to 14 days for sitemap processing. All on record now.
  6. Add a GPT 6 citation check to the AI visibility tracker. Run the fixed prompt set after 8 October and compare citation share to the pre GPT 6 baseline. Falling citations alongside rising tool based answers signal what happened.
  7. Do not trust rank tracking data alone for the next 3 to 4 weeks. Nozzle’s research puts 8% of SERPs served to trackers as fake. Cross check against Search Console before any ranking based decision.
  8. Diversify away from Discover. The move to an AI concierge model is coming, and prior rebuilds have hurt traffic badly.
  9. Watch the Search Status Dashboard this week. If Google confirms the 16 October volatility as an update, impact analysis should run from that date, not the end of the spam update.

The fortnight’s summary in one line: Google finished the harshest spam update of the year, raised the bar on authorship and AI content on paper, broke the measurement layer twice, and watched OpenAI and its own Gemini team rewire what an answer looks like.

Next round up in two weeks. Comments welcome on recovery playbooks for the spam update, GPT 6’s effect on AI citations, or how to use the Bing Topics Portfolio properly.


Sources: Google Search Central (@googlesearchc, 8 October); Google Search Status Dashboard, checked 19 October 2026; Search Engine Roundtable (Barry Schwartz, 8, 13 and 16 October); Search Engine Land (crawl timing ranges reporting; AI Mode and AI Overviews changes, 15 October; Bing Topics Portfolio, 13 October; ChatGPT UTM story, 16 October); Search Engine Journal (Google timing ranges, 4 October); Search Engine Watch (unconfirmed October update, 16 to 19 October); 9to5Google (Gemini 4 Argon, 13 October); Unite.AI (GPT 6 Intelligent UI, 7 and 8 October); TechCrunch (OpenAI visual ads, 5 October); PPC Land (fake author profiles; Google Discover job listing); SearchHerald (October 2026 archive); DesignRush SEO Roundup (8 October week); Distribb (September 2026 spam update retrospective); AEOSoup (helpful content guidance updates); WebmasterWorld (September and October 2026 observations threads); Numinix (October 2026 SEO news); Nozzle (Poisoned Google SERPs research, 10 October); Marketing4eCommerce (OpenAI UTM bug analysis).

Smart Slider for WordPress – Simple Guide [2022]

Adding image slider in WordPress

In the admin panel, on the left side there is now an option called “smart slider”.

 When going into there you can select – “dashboard” from the side-menu that appears and then select to create a “new project”.

When creating a new project you can give that slider a specific name etc if you want to

The project type you’d likely want to use is slider and slider type simple, you’d probably want the name to be a reference to the post it is for.

When you add a slide, you can select image which will give you a prompt to add an image from the media library.

Once it’s been set up you need to add the shortcode in the blog editor section and it should populate itself on the frontend, this slider in the example was given an ID of 2, so you’d add [smartslider3 slider=”2”]

Responsive Youtube IFrame Embed

Go to a YouTube video – on YouTube.com

  • Click “Share” then “Embed” and grab the code

Default Embed Code:

DEafult Youtube iframe embed HTML code



I changed the default width="560" at the start to width="100%"
Also added style="max-width: 600px;" - after allowfullscreen:


   

I can’t show an example unfortunately, as my Free WordPress.com blog doesn’t allow to add any code. The embed above isn’t fully responsive.

Advanced SEO Technical Audit Template- 2023 [Downloadable Excel Checklist]

The idea of technical SEO is to minimise the work of bots when they come to your website to index it on Google and Bing. Look at the build, the crawl and the rendering of the site.

To get started:

  • Crawl with Screaming Frog with “Text” Rendering – check all the structured data options so you can check schema (under Configuration – Spider – Extraction)
  • Crawl site with Screaming Frog with “JavaScript” rendering also in a separate or second crawl
  • Don’t crawl the sitemap.xml

This allows you to compare the JS and HTML crawls to see if JS rendering is required to generate links, copy etc.

  • Download the sitemap.xml – import into Excel – you can then check sitemap URLs vs crawl URLs.
  • Check “Issues” report under Bulk Export menu for both crawls

Also download or copy and paste sitemap URLs into Screaming Frog in list mode – check they all result in 200 status

Full template in Excel here – https://businessdaduk.com/wp-content/uploads/2023/10/seo-tech-audit-template-12th-october-2023.xlsx

Schema Checking Google Sheet here

Hreflang sheet here (pretty unimpressive sheet to be honest)

Tools Required:

  • SEO Crawler such as Screaming Frog or DeepCrawl
  • Log File Analyzer – Screaming Frog has this too
  • Developer Tools – such as the ones found in Google Chrome – View>Developer>Developer Tools
  • Web Developer Toolbar – giving you the ability to turn off Javascript
  • Search Console
  • Bing Webmaster Tools – shows you geotargetting behaviour, gives you a second opinion on security etc.
  • Google Analytics – With onsite search tracking *

    *Great for tailoring copy and pages. Just turn it on and add query parameter

Summary:

– Perform a crawl with Screaming Frog – In Configuration – Crawl – Rendering – Crawl once with Text only and once with JavaScript

Check indexation with site: searches including:

site:example.com -inurl:www

site:*.example.com -inurl:www

site:example.com -inurl:https

– Search screaming frog crawl – for “http:” on the “internal” tab – to find any unsecure URLs

*Use a chrome plug in to disable JS and CSS*

Check pages with JS and CSS disabled – Are all the page elements visible? Do Links work?

Configuration Checks

Check all the prefixes – http, https and www redirect (301) to protocol your using – e.g. https://www.

Does trailing slash added to URL redirect back to original URL structure?

Is there a 404 page?

Robots & Sitemap

Is Robots.txt present?

Is sitemap.xml present? (and in the sitemap)

Is Sitemap Submitted in S.C.?

X-robots present?

Are all the sitemaps naming conventions in lower case?

Are the URLs correct in the sitemap – correct domain and correct URL structure?

Do sitemap URLs all 200? (including images)
List Mode in Screaming Frog – “Upload” – Download sitemap – “ok”

For site migrations check – Old sitemap and Crawl Vs New – For example, Magento 1 website sitemap vs Magento 2 – anything missing or added – what are status codes?


– Status Codes – any 404s or redirects in SCreaming Frog crawl?

Rendering Check – Screaming Frog – also check pages with JS and CSS disable. Check links are present and work

Are HTML Links and H1s in the rendered HTML – check URL Inspection in Search Console or Mobile Friendly text?

Do pages work with JS disabled – links and images visible etc?

What hreflang links are present on the site?

Schema – Check all schema reports in Screaming Frog for errors

Sitemap Checks
Are crawl URLs missing from the sitemap? (check sitemap Vs crawl URLs that 200 and are “indexable”

Site: scrape
How many pages are indexed?

Do all the scraped URLs result in a 200 status code?

H1s
Are any duplicate H1s?
Are any pages missing H1s?
Any multiple H1s?

Images
Are any images missing alt text?
Are any images too big in terms of KB?

Canonicals
Are there any non-indexable canonical URLs?

Check canonical URLs aren’t in the server header using http://www.rexswain.com/httpview.html or https://docs.google.com/spreadsheets/d/1A2GgkuOeLrthMpif_GHkBukiqjMb2qyqqm4u1pslpk0/edit#gid=617917090
More info here – https://www.oncrawl.com/technical-seo/http-headers-and-seo/

Are any canonicals canonicalised?
e.g. pages with different canonicals that arent simples/config products

URL structure Errors

Meta Descriptions
Are any meta descriptions too short?
Are anymeta descriptions too long?
Are any meta descriptions duplicated?

Meta Titles
Are any meta titles too short?
Are anymeta titles too long?
Are any meta titles duplicated?

Robots tags blocking any important pages?

Menu
Is the menu functioning properly?

Pagination
Functioning fine for UX?
Canonical to root page?



Check all the issues in the issues report in Screaming Frog

PageSpeed Checks
Lighthouse – check homepage plus 2 other pages

GTMetrix

pingdom

Manually check homepage, listing page, product page for speed

Dev Tools Checks (advanced)
Inspect main elements – are they visible in the inspect window? e.g. right click and inspect the Headings – check has meta title and desc
Check on mobile devices
Check all the elements result in a 200 – view the Network tab

Console tab – refresh page – what issues are flagged?
Unused JS in the elements tab – coverage

other Checks

Has redirect file been put in place?
Have hreflang tags for live sites been added?
Any meta-refresh redirects!?


Tech SEO 1 – The Website Build & Setup

The website setup – a neglected element of many SEO tech audits.

  • Storage
    Do you have enough storage for your website now and in the near future? you can work this out by taking your average page size (times 1.5 to be safe), multiplied by the number of pages and posts, multiplied by 1+growth rate/100

for example, a site with an average page size of 1mb with 500 pages and an annual growth rate of 150%

1mb X 1.5 X 500 X 1.5 = 1125mb of storage required for the year.

You don’t want to be held to ransom by a webhost, because you have gone over your storage limit.

  • How is your site Logging Data?
    Before we think about web analytics, think about how your site is storing data.
    As a minimum, your site should be logging the date, the request, the referrer, the response and the User Agent – this is inline with the W3 Extended Format.
log file analyzer

When, what it was, where it came from, how the server responded and whether it was a browser or a bot that came to your site.

  • Blog Post Publishing
    Can authors and copywriters add meta titles, descriptions and schema easily? Some websites require a ‘code release’ to allow authors to add a meta description.
  • Site Maintenance & Updates – Accessibility & Permissions
    Along with the meta stuff – how much access does each user have to the code and backend of a website? How are permissions built in?
    This could and probably should be tailored to each team and their skillset.

    For example, can an author of a blog post easily compress an image?
    Can the same author update a menu (often not a good idea)
    Who can access the server to tune server performance?

Tech SEO 2 – The Crawl

  • Google Index

Carry out a site: search and check the number of pages compared to a crawl with Screaming Frog.

With a site: search (for example, search in Google for site:businessdaduk.com) – don’t trust the number of pages that Google tells you it has found, scrape the SERPs using Python on Link Clump:

Too many or too few URLs being indexed – both suggest there is a problem.

  • Correct Files in Place – e.g. Robots.txt
    Check these files carefully. Google says spaces are not an issue in Robots.txt files, but many coders and SEOers suggest this isn’t the case.

XML sitemaps also need to be correct and in place and submitted to search console. Be careful with the <lastmod> directive, lots of websites have lastmod but don’t update it when they update a page or post.

  • Response Codes
    Checking response codes with a browser plugin or Screaming Frog works 99% of the time, but to go next level, try using curl and command line. Curl avoids JS and gives you the response header.

Type in Curl – I and then the URL

e.g.

curl – I https://businessdaduk.com/

You need to download cURL which can be a ball ache if you need IT’s permission etc.

Anyway, if you do download it and run curl, your response should look like this:

Next enter an incorrect URL and make sure it results in a 404.

  • Canonical URLs
    Each ‘resource’ should have a single canonical address.

common causes of canonical issues include – sharing URLs/shortened URLs, tracking URLs and product option parameters.

The best way to check for any canonical issues is to check crawling behaviour and do this by checking log files.

You can check log files and analyse them, with Screaming Frog – the first 1,000 log files can be analysed with the free version (at time of writing).

Most of the time, your host will have your logfiles in the cPanel section, named something like “Raw Access”. The files are normally zipped with gzip, so you might need a piece of software to unzip them or just allow you to open them – although often you can still just drag and drop the files into Screaming Frog.

The Screaming Frog log file analyser, is a different download to the SEO site crawler – https://www.screamingfrog.co.uk/log-file-analyser/

If the log files are in the tens of millions, you might need to go next level nerd and use grep in Linux command line

Read more about all things log file analysis-y on Ian Lurie’s Blog here.

This video tutorial about Linux might also be handy. I’ve stuck it on my brother’s old laptop. Probably should have asked first.

With product IDs, and other URL fragments, use a # instead of a ? to add tracking.

Using rel-canonical is a hint, not a directive. It’s a work around rather than a solution.

Remember also, that the server header, can override a canonical tag.

You can check your server headers using this tool – http://www.rexswain.com/httpview.html (at your own risk like)


Tech SEO 3 – Rendering & Speed

  • Lighthouse
    Use lighthouse, but use in with command line or use it in a browser with no browser add-ons.If you are not into Linux, use pingdom, GTMetrix and Lighthouse, ideally in a browser with no add-ons.

    Look out for too much code, but also invalid code. This might include things such as image alt tags, which aren’t marked up properly – some plugins will display the code just as ‘alt’ rather than alt=”blah”
  • Javascript
    Despite what Google says, all the SEO professionals that I follow the work of, state that client-side JS is still a site speed problem and potential ranking factor. Only use JS if you need it and use server-side JS.

    Use a browser add-on that lets you turn off JS and then check that your site is still full functional.

  • Schema

Finally, possibly in the wrong place down here – but use Screaming Frog or Deepcrawl to check your schema markup is correct.

You can add schema using the Yoast or Rank Math SEO plugins

The Actual Tech SEO Checklist (Without Waffle)

Basic Setup

  • Google Analytics, Search Console and Tag Manager all set up

Site Indexation

  • Sitemap & Robots.txt set up
  • Check appropriate use of robots tags and x-robots
  • Check site: search URLs vs crawl
  • Check internal links pointing to important pages
  • Check important pages are only 1 or 2 clicks from homepage

Site Speed

Tools – Lighthouse, GTMetrix, Pingdom

Check – Image size, domain & http requests, code bloat, Javascript use, optimal CSS delivery, code minification, browser cache, reduce redirects, reduce errors like 404s.

For render blocking JS and stuff, there are WordPress plugins like Autoptimize and the W3 Total Cache.

Make sure there are no unnecessary redirects, broken links or other shenanigans going on with status codes. Use Search Console and Screaming Frog to check.

Site UX

Mobile Friendly Test, Site Speed, time to interactive, consistent UX across devices and browsers

Consider adding breadcrumbs with schema markup.

Clean URLs

Image from Blogspot.com

Make sure URLs – Include a keyword, are short – use a dash/hyphen –

Secure Server HTTPS

Use a secure server, and make sure the unsecure version redirects to it

Allow Google to Crawl Resources

Google wants to crawl your external CSS and JS files. Use “Fetch as Google” in Search Console to check what Googlebot sees.

Hreflang Attribute

Check that you are using and implementing hreflang properly.

Tracking – Make Sure Tag Manager & Analytics are Working

Check tracking is working properly. You can check tracking coed is on each webpage with Screaming Frog.

Internal Linking

Make sure your ‘money pages’ or most profitable pages, get the most internal links

Content Audit

Redirect or unpublish thin content that gets zero traffic and has no links. **note on this, I had decent content that had no visits, I updated the H1 with a celebrity’s name and now it’s one of my best performing pages – so it’s not always a good idea to delete zero traffic pages**

Consider combining thin content into an in depth guide or article.

Use search console to see what keywords your content ranks for, what new content you could create (based on those keywords) and where you should point internal links.

Use Google Analytics data regarding internal site searches for keyword and content ideas 💡

Update old content

Fix meta titles and meta description issues – including low CTR

Find & Fix KW cannibalization

Optimize images – compress, alt text, file name

Check proper use of H1 and H2

See what questions etc. are pulled through into the rich snipetts and answer these within content

Do you have EAT? Expertise, Authority and Trust?

https://www.semrush.com/blog/seo-checklist/

You can download a rather messy Word Doc Template of my usual SEO technical checklist here:

https://businessdaduk.com/wp-content/uploads/2021/11/drewseotemplate.docx

You can also download the 2 Excel Checklists below:

https://businessdaduk.com/wp-content/uploads/2022/07/teechnicalseo_wordpresschecklist.xlsx

https://businessdaduk.com/wp-content/uploads/2022/07/finalseochecks.xlsx

Another Advanced SEO Template in Excel

It uses Screaming Frog, SEMRush and Search Console

These tools (and services) are pretty handy too:
https://tamethebots.com/tools

Best WordPress Plugins (Free) 2021

Well, I am cheating a bit here as it is still 2020, but it’s December 22nd so please forgive me.

I don’t have any plugins on this site, but I do on my ecommerce site – NiceMMA.com

I’ve also been asked to look into plugins and basically update myself with WordPress ready for 2021 and a slightly new job role, so a thought a blog post might make a good place to record my findings.

Rank Math SEO – WordPress Plugin

This is similar to Yoast but you get more in the free version. I’m not sure I’ll be using it in my day job though, as it asks for permission to analytics and search console.

You can update URLs, redirects and a bunch of other great things with the free version and it also gives a quick SEO audit, which is nice.

Rank Math SEO allows you to look at ‘focus keywords’ and makes it easy to update the meta details.


Duplicate Page – WordPress Plugin

If you make a specific blog layout or a contact page or anything and you don’t want to remake it from scratch, this plugin with duplicate the page or post for you and keep it as a draft so you can go in and edit it before publishing.


Manage WP – WordPress Plugin

Good for web developers, you can update all the plugins all in one go and do other stuff really easy


Empty Spam Bee

If you have a contact form or email address on your site – this should keep out most of the spam.


iThemes Security

Great security plugin. Turn off some of the notifications in the notifications center or you will get loads of emails. Check – secure the site and activate Network Group Brute Force Protection


Elementor Custom Skin

great for creating custom designs if you build WordPress sites using Elementor

This plugin works great with Custom Post Type UI

To Learn more about Elementor, subscribe to this guy’s Youtube channel –

Live Chat for WordPress

If you are looking for an ai chatbot for free, look at this plugin

For managed live chat, check out these guys and for managed live chat for WordPress, this article is worth a read

Live chat can be an important tool for customer service. It can provide 24 hour instant customer support. Email and telephone contact details are great on a website, but a user is typically in a hurry and wants instant answers, and doesn’t want to wait 24 hours for a reply via email.

SEO – Use Search Console to Create Blog Posts that Rank

Go to search console

  • Click “Performance” in the side bar
  • Click “Position”
  • Click “Pages” (near the bottom-third of the page on the left)
  • Click on a high-performing post in terms of Impressions and Clicks in google
  • With the specific page/post selected, click on queries
  • Make a note of all relevant queries in the top 100
  • See if these queries can be added to the ranking post
  • Find any queries that are not directly related to your post
  • Create a new post specifically about this/these queries (if you rank for it without a specific post – you’ll rank better with a specific post for that query)
  • In the original post – put an internal link to the new post

Tips & Tricks for Customizing a WordPress Theme

Inspect Element – Dev Tools

The Chrome Inspect Element function is instrimental in making these changes to your WordPress theme.

Let’s say for example, that you want to change the main header on the homepage of your WordPress theme – then right click and choose “Inspect Element”.

Then click on the arrow icon on the top left of the window that opens, and your arrow should automatically select whatever you hover over.



Use a Text Document To Track Changes

Copy and paste code that you want to make changes to.

Make your changes in your notepad document and add a comment so that you can easily identify what you have changed.



Paste Changes into the Appearance>Customize>Additional CSS window

Once you have selected your code from the text/notepad document, you can go to the WordPress admin section /wp-admin and the Appearance menu and then “Customize”, then near the bottom, you should be able to paste in your new CSS.




To Preview CSS Changes

In inspect element, click the “+” icon on the top right.

You can then add styles to different elements.

Be aware that you may need to edit the parent element, to see any changes (rather than the specific element)

CSS WordPress inspect



To Remove Elements on a Webpage

In CSS, if you change the “Display:” value to “none”, from inline-block etc.

display: none;

You’ll need to copy & paste the whole block of code from inspect element’s CSS window, into the Custom CSS menu’s window in WordPress’s (Appearance>Customize>Custom CSS)

The video below has more details on how to do this:




To Change the Colour of Elements

Use the same method as above – i.e. select the element with the inspect element tool.

  • Select the item that you want to choose using the arrow in the Inspect Element window (arrow is on top left)
  • Then change the colour using the panel on the right:
  • Finally, paste the new code for that element, into the Custom CSS window in WordPress (go to Appearance>Customize – wait for the Customize menu to load and then click either “Customize CSS” or “Additional CSS” which is normally located near the bottom left


Change the Colour of Font-Awesome Icons

This is easily done, the same way as shown above.

Select the icon, then change the colour in the CSS panel of inspect element on the right.

Select all the CSS in that window and then paste it into the Custom CSS/Additional CSS window on the left:

CSS WordPress inspect element



Changing the Fonts on Your WordPress Theme

Go to fonts.Google.com to see all the available fonts (well, most of them)

fonts.google.com

Open Inspect-Element – click the arrow on the top left of the window

Then, again just select the text that you want to change and this time change the font-family value to the one you want

font family

Remember to add all the code/CSS from the window precise window that you edit on the right, to the Customize/Additional CSS panel on the left.

Using this method you can also change:

Padding & Margins
Containers
Background Image, Position etc.
Sidebar




!Important

By adding !important to your CSS, you can ovveride all other rules relating to that element. Use this sparingly though as it will get confusing.

More info on !important here – https://css-tricks.com/when-using-important-is-the-right-choice/

CSS for WordPress

To follow along with this tutorial, please install and open Google Chrome, and then add the following extension (at your own risk etc. but I’m sure they’re fine):

  • Firebug for Chrome
    (or you can just use Developer tools by right-clicking on parts of your webpage and selecting “Inspect” or “Inspect Element” from the menu that appears – Firebug works well on Chrome on my desktop – but not on my Macbook)

To get used to using Firebug – open your website – or just go to a website of your choice.

Click the Firebug extension on the top right of your Google Chrome browser

Update – Using Dev Tools Inspect Element in Chrome is just as good.
Just remember to click the arrow icon on the top left of the window that appears, so that you can easily select individual elements.



Adding CSS to WordPress – Additional CSS

Most WordPress themes, have a “Customize” option, that contains a menu item called “Additional CSS”

Login – on the ‘header menu’ click Customize – then Click “additional CSS”

You can then paste your CSS directly into the box provided:

additional css wordpress

Note that if you add CSS to the box on one page – but it refers to an element that is on other pages – e.g. the main-menu – then this will be applied to all pages.

If you wanted to make a change to one page only – to a ‘global-element’ such as the main-menu – you would need to add a new class or id – by editing the HTML in the Theme Editor in the dashboard/wordpress.



Try Out Your New CSS in Inspect Element or Firebug

Once you right click and “Inspect” the CSS – you can edit it.

When you have made a change to the CSS in the Inspect-Window, copy it by highlighting it and holding CTRL + V

Open the “Additional CSS” menu item, then paste in the edited snippet of code

Paste CSS into the Additional CSS Box

Now that the above code has been added, and published, the Menu Items turn red when the mouse-cursor hovers over them:



Basics of CSS

The basic concept and idea of CSS is that you can style multiple items, with one piece of code.

So for example, rather than adding a colour to every header on your website – you could ‘tell your CSS stylesheet – to make every H1 a specific colour.

Although you can use “inline CSS” by adding it directly to the HTML – best practice is to add all of your CSS to a stylesheet, which is then linked to the HTML. This is done for you already in WordPress, via the “Additional CSS” box in the Customize menu and the Appearance menu in WP-admin, under Theme Editor.

CSS Selectors

Understanding how CSS works is directly linked to understanding the concept of ‘selectors’.

CSS selects a certain HTML tag, a class or an ID and then ‘tells the browser/HTML’ what style to apply.

HTML Tags are already predifined, examples include
– p (paragraphs)
– H1 (main headers)
– a (anchor text)

Classes and IDs are not predefined by any internet-standards such as W3. You can give a HTML tag a class or an ID – so that specific paragraphs or headers etc. can be styled and not others.

Image Source

Selecting IDs

A stylesheet must ‘select’ an element, ID or class, to change the style.

To select an ID

e.g.

<div id = “main-nav“>

The ID selector is preceded by a hash character (“#”) in the stylesheet:

#main-nav {
    background-color: #ccc;
    padding: 20px
}

Selecting Classes

In the CSS, a class selector is a name preceded by a full stop

.intro {
    color: red;
    font-weight: bold;
}

Universal Selectors

The asterix * is the “universal selector”

The below CSS would select all items and make their background colour yellow:

* {
    background-color: yellow;
}

A Few Examples of CSS

  • Make the text within the main headers (h1s) – coral:
h1 {
    color: coral;
}
  • Make the text within the class called “main” centred
.main { 
                text-align:center;  
            } 

CSS Animation

Animation in CSS, usually incorporates Keyframes.

The keyframes must then select an element, for example, this keyframe selector would determine the styles and/or rules for the element called “slidein”:

Step 1 – Configure the Animation

Style the element – a paragraph (p) in the example above.
You would style the paragraph, or H1 or whatever element you want to animate, with the animation properties.

The animation properties are:

animation-name
This must sync-up with the name with the@keyframes at-rule

animation-duration

animation-timing-function
Configures the timing of the animation, relating to how the animation transitions through keyframes.

animation-delay
How long between the element loading and the animation starting?

animation-iteration-count
Defines the number of times the animation should loop

Animation CSS

To see a good example of CSS animation, please see this one on impressivewebs.com (this free version of wordpress won’t allow me to embed code etc.)

To be fair, it’s probably a bit easier to animate with JQuery – but still very handy to know CSS animations, especially when you’re trying to work out what’s going on a give webpage in terms of SEO etc.



CSS Transitions

Properties are animated from “initial to “final states” using CSS Transitions.

In the example above:

  • a div class is created in HTML and named “box”
  • The box is then styled in CSS to be red and specific dimensions
  • Transition is added to animate the box
  • Transition used on itself is shorthand, instead of declaring what to transition, for how long etc.
  • In the example above, we transition the background colour, over 2 seconds and tell it to “ease out”
  • The background colour to change to on-hover is declared as green
  • moz-transition, webkit transition etc are included for other browsers – usually older ones

Transitioning Headlines Word by Word

  • Create your HTML – name your classes etc.
<body>
<div class="box">
Rotating Word Animation
<div class="word">
<span>Rotating</span>
<span>Text </span>
<span>Test </span>
<span>Please</span>
<span>Work </span>


</div>
</div>
</body>
  • Add your CSS
body
{
margin:0;
padding:0;
background:#ff5544;
}

.box
{
position: absolute;
top: 50%;
transform: translateY(-50%);
font-size: 3em;
margin-left: 50px
width: calc(100%-50px);
}

.word
{
display: inline-block;
color: #ff0
}

.word span
{
position: absolute;
top: 0;
overflow: hidden;
animation: animate 10s linear infinite;
opacity: 0;
}

@keyframes animate
{
0%
{ 
opacity: 0;
transform: translateY(-50px);
}

2%
{ 
opacity: 1;
transform: translateY(0px);
}

18%
{ 
opacity: 1;
transform: translateY(0px);
}

20%
{ 
opacity: 0;
transform: translateY(50px);
}

100%
{ 
opacity: 0;
transform: translateY(50px);
}

}

.word span:nth-child(1)
{
animation-delay: 0s;
}

.word span:nth-child(2)
{
animation-delay: 2s;
}

.word span:nth-child(3)
{
animation-delay: 4s;
}

.word span:nth-child(4)
{
animation-delay: 6s;
}

.word span:nth-child(5)
{
animation-delay: 8s;
}

By using keyframes and changing the opacity of the ‘nth-child’ and altering the animation delay, you get the rotating word effect:



What is SaSS?

SaSS stands for “Syntactically Awesome Style Sheets”

SaSS look a bit different to standard CSS, as you don’t need the semi-colons or curly braces.

Variables

With SaSS, you can use the dollar symbol – $ to store variables.

You can, for example, create your own text variable, giving the text several styles such as size, font family, font style and a font weight – and store this information in a font variable called $my-font.

You can then call this variable to style various parts of a webpage

body {
  font: 100% $my-font;
}

or you could, create a colour variable, to save having to write out the hex code each time, e.g.

$red: #FF4848

For more information about SaSS, this Treehouse blog post is pretty good, as well as this post on sass-lang.com

Nesting

Sass lets you nest CSS selectors in the same way as HTML.

https://www.w3schools.com/sass/sass_nesting.asp

Customizing WordPress Themes with Advanced Custom Fields

Summary:

  • Create a specific post type with CPT UI plugin
  • Add specific fields, to the new post-types using the Advanced Custom Fields plugin
  • Give new fields an id – so that you can then edit the styling with CSS

See our WordPress for CSS blog post for more information on customising CSS – this will be the next post to be published



Custom fields is probably the easiest way to implement significant layout changes to a WordPress theme.

It is also a great way to provide a client with specific pages, that they can populate and publish themselves.

It obvisouly helps, a lot, to know HTML and CSS, and ideally PHP and Javascript, but you should be able to effectively customise designs to your own, and to your clients’ needs by using plugins instead (along with the Customize features now available on WordPress sites.

If a client is very specific about a design, it can a be a bit of a nightmare if you are not savvy with editing WordPress CSS, HTML and JS – Advanced Custom Fields makes it easy – and easier for both you and your clients to update when required – by changing the visual editor in wp-admin to make it as simple as possible.

In fact, I first came across Advanced Custom Fields, when I worked for a UK Tourism company, and the Web Agency amended pages using the plugin.

Step by Step

  1. Sort your hosting and domain out. Hostgator is decent (not an affiliate link)
  2. Backup your website (you should do this before installing new plugins – ironically, you made need a plugin to do this!)
  3. Install the CPT UI WordPress plugin – so you can create custom post types
  4. Install Advanced Custom Fields WordPress plugin – so you can create, well, custom fields etc on your pages and posts.
  5. Activate both the CPT UI WordPress plugin and the Advanced Custom Fields Plugin

Creating Fields with Advanced Custom Fields

Once you have installed – and activated the Advanced Custom Fields plugin, you should see a menu item on the left hand side; called “Custom Fields”

Image Source

To create a new field:

  • Click the “Add New” button next to “Field Groups” at the top of the page on the Custom Fields tab/menu item
  • Give the Field a Name e.g. “Product Description 2”
  • Now click the blue “+Add Field” button (near the top, to the right)
  • Now fill in the items required:
    – Field Name – give it a descriptive name – e.g. Product Description 2
    – Field Type – for text entry/a text box – choose Text
  • Most items are quite straight forward – the Location part is very important thought – as this dictates on which pages or posts, this field will appear.
    For my wooCommerce store, I have chosen:
    Post Type – is equal to – product
    so that I get the text field on all my product posts.
advanced custom fields - location
  • when you are happy – click the “Publish” button on the right hand side.
  • Now when I create a new Product Post/Page – I have the option to add a second description via a text box:
Product Text box
“Product Description 2” is now shown at the bottom of the page

Other Text Fields that might be appropriate for a Product could be things like:

  • Manufacturer
  • Year
  • Price
  • Condition

You could also set the fields to “Required” – so that a product could not be posted to the website without all of the above details. This is particularly helpful if you have multiple people working on the same site.

Remember that Year and Price would be a “number” and not a text field.

Add A Rating Box Using Advanced Custom Fields

  • Click “Add Field” button
  • Give the Field a name in Field Label & an actual Field Name
  • Add Instructions for the admin-user
  • Add a min and max value, e.g. 0 and 10
  • Step size – 1 (means can’t give 1.5 etc. has to be a whole number)


Combining Advanced Custom Fields with Custom Post Type Plugin

  • Install CPT UI plugin and activate it
  • Add a new post type by clicking on the relevant part of the side menu to bring up the CPT UI options
  • Fill in the basic settings:
    Slug – what will appear in the URL of these posts
    Singular – e.g. “Offer”
    Plural – e.g. “Offers”
  • Add Post Type – it should appear on the left hand menu/nav

Go Back to CPT UI – this time click on !Edit Post Types”

Minimize or just skip over the “Additional Labels” section

Under “Settings”
– Has Archive – change to “True”
– Menu Position – Change to “6” so it appears below normal posts
– Menu Icon – Change this to a relevant icon – 50 x 20 pxls

Now – when you go back to the Advanced Custom Fields section of the menu/backend – you can add specific fields to the “Offer” post type:

Advanced Custom Fields and Custom Blog Tpe

Positioning Fields on the Page

Simply use the options (in Settings) that custom fields gives you for positioning the field:

You can also add a class and id, so that you can edit the fields using CSS (see our next post about WordPress and CSS!)