Catalog / ywh.sh
72

SEO audit for ywh.sh

Wu-Hsien Yu

other

Health 72/100 (fair) · 50 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)

Just simple folk, with HTML, trying to make a living.

50
pages crawled
50
indexable pages
0
errors
81
warnings
498
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Content 80 0 34 87
Duplicate 91 0 15 23
Headings 92 0 14 0
Crawlability 93 0 12 0
Titles 98 0 4 27
Canonical 99 0 2 12
Agent Readiness 100 0 0 26
Cache 100 0 0 50
Images 100 0 0 4
Meta Description 100 0 0 11
Performance 100 0 0 108
Security 100 0 0 50
Social 100 0 0 50
Structured Data 100 0 0 50
Findings

Warnings (6 rules)

warning Interior page canonicalizes to the homepage

Rule canonical.points_to_homepage · Canonical · 2 occurrence(s)

  • https://ywh.sh/posts/ — this interior page canonicalizes to the homepage (https://ywh.sh/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
  • https://ywh.sh/writing — this interior page canonicalizes to the homepage (https://ywh.sh/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.

warning Duplicate <title> across pages

Rule duplicate.title · Duplicate · 15 occurrence(s)

warning Meta-refresh redirect (use an HTTP 301 instead)

Rule meta.refresh_redirect · Crawlability · 12 occurrence(s)

warning Title likely truncated in SERP (too wide)

Rule title.too_long · Titles · 4 occurrence(s)

Notices (20 rules)

notice Heading levels skip a level

Rule agent.heading_skip · Agent Readiness · 1 occurrence(s)

notice No llms.txt for AI agents

Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)

  • https://ywh.sh/ — no llms.txt found at the site root — add one so AI agents get a curated site summary

notice No main landmark for AI agents

Rule agent.no_main_landmark · Agent Readiness · 24 occurrence(s)

notice Page served uncached (no-store/private or CDN bypass)

Rule cache.not_cacheable · Cache · 50 occurrence(s)

notice Canonical points to a different URL

Rule canonical.non_self · Canonical · 12 occurrence(s)

notice Main text is hard to read (low Flesch Reading Ease)

Rule content.readability_poor · Content · 6 occurrence(s)

  • https://ywh.sh/projects — this page reads as difficult (Flesch Reading Ease 38, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://ywh.sh/writing/bcmath-object-api-in-php-84 — this page reads as difficult (Flesch Reading Ease 34, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://ywh.sh/writing/composer-linker — this page reads as very difficult (Flesch Reading Ease 22, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://ywh.sh/writing/formosa-theme — this page reads as difficult (Flesch Reading Ease 48, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://ywh.sh/writing/laravel-bcmath-cast-package — this page reads as difficult (Flesch Reading Ease 45, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
  • https://ywh.sh/writing/refactor-01-modular-architecture — this page reads as very difficult (Flesch Reading Ease 15, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.

notice Duplicate meta description across pages

Rule duplicate.meta_desc · Duplicate · 23 occurrence(s)

notice Likely hero image lacks fetchpriority=high

Rule images.hero_no_fetchpriority · Performance · 4 occurrence(s)

  • https://ywh.sh/about — the likely hero/LCP image (portrait.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://ywh.sh/tw/about — the likely hero/LCP image (portrait.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://ywh.sh/tw/writing/kindie-devlog-001 — the likely hero/LCP image (threads-post.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://ywh.sh/writing/kindie-devlog-001 — the likely hero/LCP image (threads-post.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

notice Images without width/height (layout shift / CLS)

Rule images.missing_dimensions · Images · 4 occurrence(s)

notice Legacy <meta name=keywords> tag present (Google ignores it)

Rule meta.keywords_present · Content · 50 occurrence(s)

notice Meta description too long

Rule meta_desc.too_long · Meta Description · 5 occurrence(s)

notice Meta description too short

Rule meta_desc.too_short · Meta Description · 6 occurrence(s)

notice Missing Open Graph tags

Rule og.missing · Social · 50 occurrence(s)

notice Legacy image format (jpg/png/gif) with no next-gen fallback

Rule perf.images_legacy_format · Performance · 4 occurrence(s)

  • https://ywh.sh/about — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://ywh.sh/tw/about — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://ywh.sh/tw/writing/kindie-devlog-001 — 7 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://ywh.sh/writing/kindie-devlog-001 — 7 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.

notice No ETag header (no conditional GET for unchanged pages)

Rule perf.no_etag · Performance · 50 occurrence(s)

  • https://ywh.sh/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/about — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/now — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/bcmath-object-api-in-php-84 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/composer-linker — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/composer-process-timeout — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/formosa-theme — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/from-schema-dumps-to-migrations — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/godex-label-printing-system — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/kiho-devlog-001 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/kindie-devlog-001 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/laravel-bcmath-cast-package — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/posts/refactor-01-modular-architecture — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/projects — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/topics/architecture — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/topics/composer — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/topics/design — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/tw/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/tw/about — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/tw/now — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/tw/projects — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/tw/writing/bcmath-object-api-in-php-84 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/writing — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://ywh.sh/writing/bcmath-object-api-in-php-84 — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.

notice No Last-Modified header (no conditional GET for unchanged pages)

Rule perf.no_last_modified · Performance · 50 occurrence(s)

  • https://ywh.sh/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/about — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/now — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/bcmath-object-api-in-php-84 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/composer-linker — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/composer-process-timeout — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/formosa-theme — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/from-schema-dumps-to-migrations — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/godex-label-printing-system — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/kiho-devlog-001 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/kindie-devlog-001 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/laravel-bcmath-cast-package — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/posts/refactor-01-modular-architecture — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/projects — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/topics/architecture — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/topics/composer — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/topics/design — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/tw/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/tw/about — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/tw/now — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/tw/projects — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/tw/writing/bcmath-object-api-in-php-84 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/writing — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://ywh.sh/writing/bcmath-object-api-in-php-84 — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://ywh.sh/about
About | Wu-Hsien Yu
200 yes 67 27
https://ywh.sh/now
Now | Wu-Hsien Yu
200 yes 34 27
https://ywh.sh/
Wu-Hsien Yu
200 yes 169 29
https://ywh.sh/projects
Projects | Wu-Hsien Yu
200 yes 153 27
https://ywh.sh/tw/
Wu-Hsien Yu
200 yes 93 27
https://ywh.sh/tw/about
關於 | Wu-Hsien Yu
200 yes 17 13
https://ywh.sh/tw/now
近況 | Wu-Hsien Yu
200 yes 26 13
https://ywh.sh/tw/projects
專案 | Wu-Hsien Yu
200 yes 68 13
https://ywh.sh/writing/laravel-bcmath-cast-package
laravel-bcmath-cast:A Reusable Package for Precise Decimal Casting in Eloquent | Wu-Hsien Yu
200 yes 614 13
https://ywh.sh/writing/composer-linker
Composer Linker: The npm link for PHP Developers | Wu-Hsien Yu
200 yes 1200 9
https://ywh.sh/writing/formosa-theme
Formosa Theme: From a Limited Edition Porsche to Editor Themes | Wu-Hsien Yu
200 yes 541 7
https://ywh.sh/writing/kindie-devlog-001
Kindie - Devlog 01 | Wu-Hsien Yu
200 yes 1846 11
https://ywh.sh/topics/laravel
Wu-Hsien Yu
200 yes 79 12
https://ywh.sh/writing/godex-label-printing-system
Building a Custom Label Printing System: From Loftware to GoDex | Wu-Hsien Yu
200 yes 1038 8
https://ywh.sh/topics/php
Wu-Hsien Yu
200 yes 72 9
https://ywh.sh/writing/refactor-01-modular-architecture
Refactoring Part 1: From Monolith to Modular | Wu-Hsien Yu
200 yes 1665 7
https://ywh.sh/writing/bcmath-object-api-in-php-84
Handling Decimal Calculations in PHP 8.4: Integrating BCMath Object API with Laravel | Wu-Hsien Yu
200 yes 1511 7
https://ywh.sh/tw/writing/laravel-bcmath-cast-package
laravel-bcmath-cast:可重複使用的 Eloquent 浮點數 Cast 套件 | Wu-Hsien Yu
200 yes 374 8
https://ywh.sh/writing/kiho-devlog-001
kiho - Devlog 01 | Wu-Hsien Yu
200 yes 1815 7
https://ywh.sh/topics/tools
Wu-Hsien Yu
200 yes 43 5
https://ywh.sh/writing/composer-process-timeout
That Time Composer's Timeout Drove Me Nuts | Wu-Hsien Yu
200 yes 727 6
https://ywh.sh/topics/indie
Wu-Hsien Yu
200 yes 33 6
https://ywh.sh/tw/writing/formosa-theme
Formosa Theme:從 Porsche 限定車款到編輯器主題 | Wu-Hsien Yu
200 yes 193 3
https://ywh.sh/topics/composer
Wu-Hsien Yu
200 yes 40 5
https://ywh.sh/topics/design
Wu-Hsien Yu
200 yes 34 4
https://ywh.sh/topics/packages
Wu-Hsien Yu
200 yes 33 4
https://ywh.sh/tw/writing/kindie-devlog-001
Kindie - 開發日誌 01 | Wu-Hsien Yu
200 yes 301 7
https://ywh.sh/topics/kindie
Wu-Hsien Yu
200 yes 28 4
https://ywh.sh/tw/writing/godex-label-printing-system
自建物流標籤列印系統:從 Loftware 到 GoDex | Wu-Hsien Yu
200 yes 466 6
https://ywh.sh/topics/kiho
Wu-Hsien Yu
200 yes 28 4
https://ywh.sh/topics/plugin
Wu-Hsien Yu
200 yes 28 4
https://ywh.sh/topics/architecture
Wu-Hsien Yu
200 yes 31 4
https://ywh.sh/topics/docker
Wu-Hsien Yu
200 yes 31 4
https://ywh.sh/tw/writing/refactor-01-modular-architecture
重構一:從單體應用到模組化 | Wu-Hsien Yu
200 yes 654 4
https://ywh.sh/tw/writing/bcmath-object-api-in-php-84
PHP 8.4 浮點數運算處理:將 BCMath Object API 整合進 Laravel | Wu-Hsien Yu
200 yes 1020 4
https://ywh.sh/tw/writing/kiho-devlog-001
kiho - 開發日誌 01 | Wu-Hsien Yu
200 yes 430 3
https://ywh.sh/tw/writing/composer-process-timeout
被 Composer 的 Timeout 卡了好幾個小時 | Wu-Hsien Yu
200 yes 406 2
https://ywh.sh/topics/testing
Wu-Hsien Yu
200 yes 32 1
https://ywh.sh/posts/
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/bcmath-object-api-in-php-84
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/composer-linker
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/composer-process-timeout
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/formosa-theme
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/from-schema-dumps-to-migrations
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/godex-label-printing-system
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/kiho-devlog-001
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/kindie-devlog-001
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/laravel-bcmath-cast-package
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/posts/refactor-01-modular-architecture
Wu-Hsien Yu
200 yes 4 0
https://ywh.sh/writing
Wu-Hsien Yu
200 yes 4 0

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →