Commit 29c414a
fix(seo): clear residual audit errors — squareup redirect + contact email (MARTECH-19 follow-up) (#1012)
* fix(seo): redirect stale squareup auth link + defer contact-us support email
Follow-up cleanup after the MARTECH-19 re-crawl (health 95, errors 143->39):
- Redirect /:locale/references/auth-providers/squareup -> .../square. An
external/stale link to the old "squareup" slug 404'd; this clears the
"broken redirect" plus its 404/4XX rows.
- The contact-us "Email Support" card now assembles its mailto after mount
(mirrors <ContactEmail>), so SSR markup is a plain contact-page link and
Cloudflare can't rewrite it into a broken /cdn-cgi/l/email-protection link.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* test(seo): guard toolkit canonical hygiene (docs analog of the www guard)
Mirrors the canonical guard added to ArcadeAI/www on the docs side. docs'
only page-level canonical comes from the generated toolkit pages, so
tests/integration-index-links.test.ts now asserts (re-deriving the canonical
with the same pure helpers generateMetadata uses — readToolkitData +
getToolkitSlug — to avoid importing browser-only render code):
- every toolkit page's canonical points at its own URL (self-canonical),
- canonicals are unique (no duplicate-canonical pages — the notion class
MARTECH-19 fixed),
- and none points at a redirect source or a non-generated route.
The docs sitemap (app/sitemap.ts, static MDX only) is already guarded by
tests/sitemap.test.ts (no redirect-source URLs, no duplicates).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* test(seo): fetch toolkit routes once in the canonical guard
Review follow-up: the canonical-hygiene beforeAll looped
getToolkitStaticParamsForCategory() over every INTEGRATION_CATEGORIES entry,
and that helper recomputes listToolkitRoutes() (toolkit index + every data
file) internally — so the full catalog was re-read once per category (~10×),
scaling worse as the toolkit count grows. Fetch the routes with a single
listToolkitRoutes() call and iterate it directly (it already yields both
category and toolkitId). Same coverage; suite ~717ms → ~400ms.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
---------
Co-authored-by: Juan Ibarlucea <juanibarlucea@192.168.1.2>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>1 parent 52cd541 commit 29c414a
3 files changed
Lines changed: 118 additions & 3 deletions
File tree
- app/en/resources/contact-us
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
264 | 264 | | |
265 | 265 | | |
266 | 266 | | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
267 | 275 | | |
268 | 276 | | |
269 | 277 | | |
| |||
282 | 290 | | |
283 | 291 | | |
284 | 292 | | |
285 | | - | |
| 293 | + | |
286 | 294 | | |
287 | 295 | | |
288 | 296 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
34 | 41 | | |
35 | 42 | | |
36 | 43 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | | - | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
12 | 16 | | |
13 | 17 | | |
| 18 | + | |
14 | 19 | | |
15 | 20 | | |
16 | 21 | | |
| |||
246 | 251 | | |
247 | 252 | | |
248 | 253 | | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
| 330 | + | |
| 331 | + | |
| 332 | + | |
| 333 | + | |
| 334 | + | |
| 335 | + | |
| 336 | + | |
| 337 | + | |
| 338 | + | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
| 343 | + | |
| 344 | + | |
| 345 | + | |
| 346 | + | |
| 347 | + | |
| 348 | + | |
0 commit comments