Daily SEO Note — September 25, 2026: Google's September Spam Update Goes Global

Audit window: 24 hours to 06:00 UTC on September 25, 2026. Two things shipped from Google on September 24 and one breaking change landed in the SvelteKit release train. Everything below traces to a primary source with a date and a rollout status; industry blogs were used for detection only and are labelled where they appear.
1. SEO for Content Writers
The day has one consequential editorial change: Google released the September 2026 spam update at 16:15 UTC on September 24. It applies globally and to all languages, and Google says the rollout may take up to two weeks — which means rankings you look at this week are mid-flight, not final. Everything else today is reporting plumbing and a small structured-data addition.
Google released the September 2026 spam update (rolling out, global, all languages)
Google logged the update on the Search Status Dashboard at 2026-09-24 16:15 UTC with no companion blog post. The entry reads: "Released the September 2026 spam update, which applies globally and to all languages. The rollout may take up to two weeks to complete." As of this audit the incident has no end timestamp, so it is still rolling out.
The two-week window is the detail worth noticing. The August 2026 spam update was announced with a "few days" rollout and completed in three. A two-week window means the ranking picture will keep moving through roughly October 8, and any editorial decision made on a single day's data inside that window is being made on partial information.
Who it affects: all content, but the pressure lands on anything that touches Google's spam policies — scaled content abuse, site reputation abuse, and expired domain abuse in particular. Spam updates are improvements to Google's automated spam detection rather than a re-scoring of quality, so the sites that move are the ones sitting near a policy line, not the ones that merely have thin pages.
What to do differently: freeze conclusions, not work. Keep publishing to the normal cadence and log a daily snapshot of your top landing pages so you have a before-and-after when the rollout closes. Run a policy pass on any section that reads like it was produced at volume, any sponsored or partner directory hosted on your domain, and any content published under a byline that does not correspond to a real person. What to stop: do not roll back titles, prune pages, or rewrite briefs in reaction to movement recorded during an active rollout. Google's spam update guidance is explicit that recovery follows sustained policy compliance observed over months, so same-week thrash buys nothing.
Search Console splits web search into text-based and multimodal
On September 24 Google announced web multimodal Search performance reporting, rolling out globally from that day in both the Search results performance report and the Generative AI features report. The new search type covers "searches with Lens, Circle to Search on Android, image uploads to Google Search, and the Chrome right-click 'Search this image' feature." Google's Search Console help documentation now defines the filter as two values: "Web: text-based" for traditional typed queries, and "Web: multimodal" for "web search results where an image was used as part of the search."
Who it affects: any site with substantial visual content — product photography, recipes, plants and animals, parts and equipment, fashion, travel, landmarks, anything a person would point a camera at rather than describe in words. For text-only publishers the split will mostly show a rounding error, and that in itself is a useful confirmation.
What to do differently: open the performance report, apply the multimodal filter, and read the page list rather than the totals. Those pages tell you which of your images Google is already matching against camera input, and they are the ones whose surrounding copy has to answer a question the searcher never typed. That means writing the identifying detail into the page — the model number, the cultivar, the material, the period, the exact variant — rather than assuming the query string supplied it.
One caveat to carry into the brief: Google's announcement describes exports and a search type filter, not query reporting, and the Search Console API reference has not added a multimodal value to its type enum. Treat this as a page-level and image-level signal, not a keyword source. Search Engine Roundtable reported on September 24 that the Queries dimension is switched off for this type because the searcher used a picture instead of words; that specific detail is unconfirmed by Google.
Video credits and engagement counts become documented markup
Google updated the VideoObject structured data documentation on September 24 to add the creator property and document supported interactionStatistic types. Both are recommended rather than required. The change was logged in the Search documentation changelog the same day.
This is a developer task in execution, but an editorial one in substance. The creator property identifies "the person or organization that created or published the video," which is the video equivalent of a byline — and it means the credit you write in the CMS now has a defined place to land instead of living only in on-screen text. Google supports exactly four interaction types: WatchAction, LikeAction, CommentAction and ShareAction.
What to do differently: make a named creator a required field on every video brief, matched to a real author page the same way an article byline is. What to stop: do not hand engineering approximate or aspirational engagement numbers to populate interactionStatistic. Those counts are assertions about your own site made in machine-readable form, and the honest move is to wire them to the real counter or leave the property out.
Unconfirmed: elevated ranking volatility on September 23 and 24
Search Engine Roundtable reported volatility across third-party tracking tools around September 23 and 24, ahead of Google's 16:15 UTC spam update announcement on the 24th. Google has confirmed nothing for those dates beyond the spam update itself, and no core update is listed on the Search Status Dashboard.
This item is unconfirmed and is deliberately excluded from the checklist below. It matters only as context: if you saw movement on the 23rd, it predates the announced rollout and should not be attributed to it.
Apply to your next brief
- Snapshot top landing pages daily until the spam update rollout closes (expect early October); make no editorial rollbacks on mid-rollout data.
- Run one spam-policy pass over scaled, sponsored, and partner-hosted sections before the rollout completes, not after.
- Add the multimodal filter to your monthly Search Console review and read it as a page list, not a keyword list.
- For any page a camera could land on, write the identifying detail into the copy: model, variant, material, cultivar, period.
- Require a named, real creator credit on every video brief, mapped to an existing author page.
- Do not supply engagement figures for video markup unless they come from a live counter.
2. SEO for Developers
The consequential engineering change today is breaking: @sveltejs/[email protected] shipped three major static-asset changes on September 24 that alter how crawlers and CDNs fetch and revalidate your static files. Alongside it, Google's VideoObject documentation gained a property, and the new multimodal search type exists in the Search Console UI but not in the Search Console API — which will quietly desynchronise any dashboard you have built on it.
Breaking: adapter-node changes static asset serving, ETags and allowed methods
Released September 24, 2026 at 16:20 UTC as part of the SvelteKit 3 next line. Three changes are listed under Major Changes in the adapter-node 6.0.0-next.13 release notes: the adapter now records the list of static assets at build time and will not serve files added to the output afterwards; it validates static assets with content-hash ETags and stops sending Last-Modified; and it serves static assets only to GET and HEAD requests. Internally it serves from tables recorded at adapt time instead of using sirv.
Symptoms if ignored. Any pipeline step that writes into the build output after the adapter runs — a sitemap emitted by a post-build script, a generated robots.txt, an OG image baked in CI, a verification file dropped by a deploy hook — will 404 in production while still existing on disk. That is the expensive one: a sitemap that returns 404 stops being fetched, and a missing verification file silently unlinks a Search Console property. The ETag change is non-breaking for crawlers, which handle both validators, but any monitor asserting on a Last-Modified header will start failing. The method restriction is the safe one, and in fact matches how Googlebot and most uptime checks probe URLs.
The file to change is your build pipeline ordering, not the adapter config: anything that generates a crawlable artifact has to run before the adapter, so the asset table includes it.
# WRONG under adapter-node 6: sitemap is written after the asset table is recorded
# "build": "vite build && node scripts/gen-sitemap.mjs"
# RIGHT: emit crawlable artifacts into static/ BEFORE the adapter runs
# "prebuild": "node scripts/gen-sitemap.mjs && node scripts/gen-robots.mjs",
# "build": "vite build"
# Verify after deploy - both must return 200, and HEAD must work
curl -sI https://example.com/sitemap.xml | head -n 1
curl -sI https://example.com/robots.txt | head -n 1
# Confirm the new validator is in play: expect ETag, and no Last-Modified
curl -sI https://example.com/favicon.ico | grep -iE '^(etag|last-modified):'The same release train also fixed prerendering behaviour in @sveltejs/[email protected], published the same day. Two fixes matter for crawlable output: the prerender crawler no longer hangs on unterminated unquoted attributes, and fallback handlers are now rejected on prerendered endpoints. If a malformed attribute in one template has been stalling your prerender step, that build now completes — verify your generated route count went up rather than assuming the fix is cosmetic.
VideoObject: creator added, interactionStatistic types now enumerated
Logged in the Search documentation changelog on September 24, 2026. Non-breaking: both properties are recommended, so existing markup stays valid and no rich result is lost by omitting them. The symptom of ignoring it is opportunity cost — Google now documents a slot for video attribution that your markup leaves empty.
Per the VideoObject documentation, creator takes a Person or Organization and requires a name or alternateName. interactionStatistic supports exactly four interaction types — WatchAction, LikeAction, CommentAction and ShareAction — each carrying a userInteractionCount integer. Anything outside that set is undocumented and should be dropped rather than guessed at.
Change the template that emits your video JSON-LD. Validate with the Rich Results Test before shipping, and wire userInteractionCount to the real counter or omit the property entirely.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "Replacing the Series 4 filter cartridge",
"description": "Step-by-step teardown and reassembly.",
"thumbnailUrl": ["https://example.com/img/filter-1x1.jpg"],
"uploadDate": "2026-09-24T09:00:00+00:00",
"duration": "PT6M12S",
"contentUrl": "https://example.com/video/filter-swap.mp4",
"creator": {
"@type": "Person",
"name": "Oday Bakkour",
"url": "https://example.com/authors/oday-bakkour"
},
"interactionStatistic": [
{
"@type": "InteractionCounter",
"interactionType": { "@type": "WatchAction" },
"userInteractionCount": 18422
},
{
"@type": "InteractionCounter",
"interactionType": { "@type": "CommentAction" },
"userInteractionCount": 37
}
]
}
</script>Multimodal reporting is UI and export only — the Search Console API has not moved
Google's September 24 announcement adds a multimodal search type to the Search Console performance reports. The Search Analytics: query API reference — last updated 2026-08-11 — still documents a type enum of discover, googleNews, news, image, video and web, with no multimodal value and no sub-value under web.
Non-breaking, but it creates a reconciliation trap. Your BigQuery or Looker dashboard calling searchAnalytics.query with type=web keeps returning text-based and multimodal traffic combined, while a colleague filtering the UI to "Web: text-based" sees a smaller number for the same range. Nothing is wrong with either figure; they are different populations. If you do not label this in the dashboard, someone will report a traffic drop that did not happen.
The setting to change is a label and a note in your reporting layer, not a parameter. Until Google adds the value, annotate any web-type series as combined, and pull multimodal figures from the UI export.
# type=web returns text-based + multimodal COMBINED (API enum unchanged as of 2026-09-25)
curl -s -X POST \
"https://searchconsole.googleapis.com/webmasters/v3/sites/$SITE/searchAnalytics/query" \
-H "Authorization: Bearer $GSC_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"startDate": "2026-09-18",
"endDate": "2026-09-24",
"dimensions": ["page"],
"type": "web",
"rowLimit": 1000
}'
# There is no "multimodal" enum value. Do not send one - it will be rejected.
# Label the output series explicitly so UI and API numbers are not compared blind:
# series_label = "Web (text-based + multimodal, combined)"Ship today
- Audit build order for anything on adapter-node 6: move sitemap, robots.txt, OG image and verification-file generation into a prebuild step, then confirm each returns 200 in production.
- Update or delete any monitor that asserts on Last-Modified for static assets; assert on ETag instead.
- Confirm HEAD requests still succeed against sitemap.xml and robots.txt after the adapter upgrade — Googlebot and most uptime checks rely on them.
- Re-run the prerender build after upgrading to kit 3.0.0-next.28 and diff the generated route count against the previous build.
- Add creator to the VideoObject template and validate the four supported interactionStatistic types with the Rich Results Test.
- Relabel every Search Console API series built on type=web as combined text-based plus multimodal, before anyone compares it to the UI.
Nothing verifiable changed in the last 24 hours across AI crawler policy, Core Web Vitals thresholds, Chrome platform releases, Schema.org vocabulary, or security advisories affecting SEO packages. Next audit: September 26, 2026.
Comments
Share your thoughts and join the conversation
