Daily SEO Note — October 29, 2026: Google Opens Search to Connected Apps as Lighthouse Moves the Agent Manifest to ard.json
Part of Daily SEO Notes, a daily series.

1. SEO for Content Writers
The one editorial change that matters today is that Search became a place where an app can finish a task, not only a place where a page can rank. Google opened the Connected Apps Platform preview on 28 October 2026: a user links an app once, then reaches their account data and completes actions inside the Gemini app and inside Search. Everything else in the window was quiet — Google's documentation changelog logged nothing after 26 October, and the Search Status Dashboard reported no incidents as of 28 October, 23:04 PDT.
Search now hosts app actions, which changes what a task-intent article is for
Google's Connected Apps Platform entered a preview phase on 28 October 2026 with self-service onboarding. The mechanism matters for editorial planning: a developer exposes tools through a hosted Model Context Protocol server or through Android AppFunctions, and the user links the app once. After that, the action is available inside the product rather than behind a click to your site.
The detail to carry into briefs is that Search and the Gemini app are separate publishing targets. Google's documentation is explicit that an integration can be made available in Search, in Gemini, or in both, and that publishing to one does not place it in the other. A brief that assumes "we are in Gemini, so we are in Search" is wrong by default.
What to do differently: take your top task-intent articles — the ones that answer "how do I pay this", "how do I book that" — and check whether your own app could now complete that task in-surface. Where it can, the article's job shifts from instruction to the context the action cannot carry: eligibility, edge cases, what happens after the action completes, and what to do when it fails. Write that article; it is the one that still earns a visit.
What to stop doing: stop commissioning step-by-step walkthroughs of your own product interface as a durable ranking asset for task queries. Where an action is connected, the walkthrough is the part Search can replace. Primary source: developers.google.com/connected-apps, 28 October 2026, preview, phased onboarding.
Ads in AI Mode reached ten more markets, and US follow-up turns are now monetized
On 28 October 2026 Google announced that ads in AI Mode are live in ten more countries — Australia, Canada, India, Kenya, Malaysia, New Zealand, Nigeria, Pakistan, the Philippines and Singapore — with Brazil, Mexico and the United Kingdom following in Q4. In the United States, Google also launched multiturn ads, which place sponsored results inside follow-up queries in an ongoing AI Mode conversation. Ads carry a "Sponsored" label. Status: rolling out.
This affects one content type above all others: mid-funnel comparison and shortlist writing in those ten markets. The follow-up turn used to be the part of an AI Mode conversation with no paid inventory, which made it the cheapest place to be cited. In the United States that is no longer true, and the ten new markets now have paid inventory on the opening turn. Google states in the same announcement that click-through rates for sponsored and organic product listings inside AI Mode are already similar — that is Google's characterisation, not a measured figure from your property.
What to do differently: brief comparison articles for those markets to win the citation rather than only the click. That means a direct answer in the first hundred words, a comparison table whose cells stand alone when quoted, and at least one data point that exists nowhere else — your own testing, your own pricing survey, your own support-ticket counts. A sponsored placement can outrank you; it cannot be the source an answer paraphrases.
What to stop doing: stop pointing hreflang at a United States duplicate for these markets. India, Pakistan, Nigeria, Kenya, Malaysia and the Philippines all have distinct query behaviour and distinct product availability, and a market that just gained paid inventory is a market where a transcreated article earns its cost. Commission the localized version or leave the market alone.
No confirmed ranking or guidance change in the window
Google logged no core update, no spam update and no Discover change between 28 and 29 October, and the documentation changelog's most recent entry remains 26 October's user-generated spam guidance. Unconfirmed: SEO tracking tools and forum chatter reported a volatility spike around 27 October that Google has not acknowledged as an update; treat it as unconfirmed and do not rewrite anything on its strength.
Apply to your next brief
- For task-intent topics your own app could now complete in Search, brief the article as context around the action — eligibility, edge cases, failure states, what happens next — not a walkthrough of your interface.
- Write Search and the Gemini app as two separate placements in the brief; a connected app published to one is not live on the other.
- For Australia, Canada, India, Kenya, Malaysia, New Zealand, Nigeria, Pakistan, the Philippines and Singapore, assume AI Mode conversations now carry sponsored inventory, and brief comparison content to earn the citation rather than the click alone.
- Put one piece of first-hand data in every comparison brief for those markets: own testing, own pricing survey, own usage numbers. Paraphrasable originality is what survives a sponsored placement above you.
- Commission a transcreated article for a newly live market instead of pointing hreflang at a United States duplicate.
- Do not schedule rewrites against this week's volatility. Google logged no ranking update in the window.
2. SEO for Developers
The change most likely to alter a build result today is Lighthouse 13.6.0 (27 October 2026): its agent-discovery audit now follows ARD v0.91 and expects the manifest at /.well-known/ard.json instead of /.well-known/ai-catalog.json. If your pipeline asserts on that audit, the upgrade flips it.
Breaking: Lighthouse 13.6.0's ard-schema audit expects ard.json and warns on ai-catalog.json
Version and date: Lighthouse v13.6.0, released 27 October 2026, changelog heading "13.6.0 (2026-10-27)". It tracks Agentic Resource Discovery v0.91, which superseded the ai-catalog.json path and the matching link relation. Breaking for continuous integration: the ard-schema audit and its gatherer now look for the manifest via Link HTTP headers, a <link rel="ard"> element, and /.well-known/ard.json, and the audit warns when a site is still serving only the legacy ai-catalog location. The report footer now prints the ARD spec version, so you can tell from a stored report which spec a run was judged against.
Symptom if ignored: a Lighthouse CI assertion on ard-schema that passed on 13.5.0 starts reporting a legacy-location warning after the upgrade, and the audit no longer resolves your manifest through the path it used to. Two related fixes in the same release change adjacent behaviour: the robots.txt and llms.txt audits now fail on an HTTP 429 response instead of throwing, and the robots.txt audit recognises the License directive.
What to change: serve the manifest at /.well-known/ard.json and advertise it with a Link header or a link element. The spec treats the legacy path as an equivalent entry source, so keep ai-catalog.json in place during the transition rather than redirecting it away. Each entry needs a globally unique identifier, a display name, an IANA media type, and exactly one of url or data.
import { NextResponse } from "next/server";
// ARD v0.91 — https://agenticresourcediscovery.org/spec/
const manifest = {
version: "0.91",
entries: [
{
id: "urn:ard:oday.dev:blog-feed",
name: "Oday Blog",
type: "application/rss+xml",
url: "https://oday.dev/rss.xml",
},
],
};
export function GET() {
return NextResponse.json(manifest, {
headers: {
"Cache-Control": "public, max-age=3600",
// Second discovery mechanism the 13.6.0 gatherer checks.
Link: '</.well-known/ard.json>; rel="ard"',
},
});
}Cloudflare Workers Static Assets can now serve from a URL path prefix
Date and identifier: 28 October 2026, Cloudflare developer changelog. Requires Wrangler 4.148.0 or later, or cf 1.0.0-beta.13 or later if you configure through cloudflare.config.ts. Non-breaking: it is an opt-in option, and existing projects are unaffected until you set it.
What it does: assets.base_path in Wrangler, or worker.assets.basePath in cloudflare.config.ts, serves an asset directory from a public URL prefix without changing the directory layout on disk. The Asset Worker strips the prefix for asset lookup only. In practice this removes the reason teams used to restructure dist or add a Worker rewrite when moving a docs or blog build under a subpath — and those two workarounds are where canonical and sitemap drift came from.
Symptom if you set it carelessly: base_path changes every delivered URL for that build. A deploy that introduces the prefix without regenerating canonical tags and the sitemap leaves the sitemap advertising the old flat paths while canonicals point at the prefixed ones, which is a self-inflicted duplicate-URL report in Search Console. Change the prefix and the URL generation in the same deploy, never in sequence.
import { defineConfig } from "cf/config";
export default defineConfig({
worker: {
name: "blog",
compatibilityDate: "2026-10-28",
assets: {
// Serves the build output from /blog/ without moving files.
// Regenerate sitemap + canonicals in this same deploy.
basePath: "/blog",
},
},
});Connected Apps integrate through an MCP server you host, and Search publishes separately from Gemini
Date and status: 28 October 2026, preview phase with self-service onboarding, per Google's Connected Apps documentation. Non-breaking — nothing on your site changes — but it is a new integration surface with its own review process, so the engineering decision is whether to build it at all.
Two integration paths. Server-side, you expose tools and authorized data through a remote Model Context Protocol server and implement OAuth 2.1 so the Gemini app can act on a user's behalf; MCP Apps covers interactive interfaces on top of that. Client-side on Android, you share app functionality through AppFunctions with the Jetpack AppFunctions SDK, and the tools run locally on the device. Either way you register tools, test them, submit for review and then monitor usage in the Google Connected Console.
The setting that catches teams out is not a file — it is the publishing target. Search and the Gemini app are separate, and shipping to one does not ship to the other. Build the registration step in your release process as two explicit decisions, and treat the Connected Console's traffic, latency and error views as a production monitor, because a tool that times out is a tool the model stops selecting.
import { z } from "zod";
// Registered and reviewed via Google Connected Console.
// Publishing to Gemini does NOT publish to Search — ship both explicitly.
export const checkOrderStatus = {
name: "check_order_status",
// Describe what the tool does. Do not write the description
// to argue that the model should prefer this app.
description: "Return the delivery status of a signed-in customer's order.",
inputSchema: z.object({
orderId: z.string().describe("Customer-facing order reference."),
}),
handler: async ({ orderId }: { orderId: string }, ctx: { userId: string }) => {
const order = await getOrder(ctx.userId, orderId);
if (!order) return { content: [{ type: "text", text: "No such order." }] };
return {
content: [
{ type: "text", text: `${order.reference}: ${order.status}` },
],
};
},
};Chrome 156.0.8078.73 stable carries 52 security fixes, four of them critical
Version and date: the Stable channel update for desktop of 27 October 2026 moved stable to 156.0.8078.73/.74 on Windows and Mac and 156.0.8078.73 on Linux, rolling out over days and weeks. It includes 52 security fixes. The four critical entries are CVE-2026-118306 (memory corruption in FileSystem), CVE-2026-118331 (improper input validation in FileAPI), CVE-2026-118348 (improper input validation in Skia) and CVE-2026-118344 (use after free in Layout).
Why this belongs in an SEO note rather than only a security one: if you pin a Chrome binary for Lighthouse, Puppeteer or Playwright in continuous integration, that pinned build is the browser your lab Core Web Vitals are measured in. Let it drift several versions behind stable and your lab numbers stop tracking the browser population that CrUX actually reports, which turns every field-versus-lab discrepancy into a debugging dead end. Patch the pin on the same cadence as the stable channel.
#!/usr/bin/env bash
set -euo pipefail
# Lab CWV are only comparable to CrUX if CI tracks the stable channel.
EXPECTED="156.0.8078"
ACTUAL="$(/opt/pw-browsers/chromium --version | grep -oE '[0-9]+(\.[0-9]+){3}')"
echo "CI Chromium: ${ACTUAL} (expected ${EXPECTED}.x)"
case "${ACTUAL}" in
"${EXPECTED}".*) echo "OK — pin matches stable." ;;
*) echo "DRIFT — update the pinned browser before trusting lab CWV." >&2; exit 1 ;;
esacQuiet elsewhere in the window
Next.js shipped only 16.5.0-canary.30 on 28 October, with no metadata, sitemap, robots or image-optimization changes; 16.4.3 remains the latest stable. Vercel's changelog for 28 October carried no routing, rewrite, middleware, ISR or caching entries. Schema.org is still on 30.1 from 16 September. The web.dev blog has published nothing since 2 October, and no new advisories landed for next-sitemap, next-seo or the Nuxt and Astro sitemap modules.
Ship today
- Serve /.well-known/ard.json and advertise it with a Link header or <link rel="ard"> before your next Lighthouse 13.6.0 run, keeping ai-catalog.json in place as an equivalent source.
- Re-pin the CI Chrome or Chromium binary to 156.0.8078.73 so lab Core Web Vitals stay comparable to the CrUX population, and take the 52 security fixes while you are there.
- If a build is moving under a subpath on Cloudflare, upgrade Wrangler to 4.148.0 and set assets.base_path rather than restructuring dist — and regenerate the sitemap and canonical tags in that same deploy.
- Check the robots.txt and llms.txt responses your CI sees for HTTP 429: Lighthouse 13.6.0 now fails those audits on a rate-limited response instead of throwing.
- If you register a connected app, make Search and the Gemini app two explicit steps in the release checklist; publishing to one does not publish to the other.
Comments
Share your thoughts and join the conversation



