Canonicalization mengumpulkan URL yang duplicate atau sangat serupa dan mengenal pasti URL representative untuk Cari. Redirect pula mengubah URL yang diminta oleh user dan crawler. Kedua-duanya membantu consolidation, tetapi pilihan tepat bermula dengan soalan sama ada old atau alternate URL masih perlu boleh diakses.
Kedua-dua URL perlu kekal accessible dan equivalent: gunakan Canonical. Satu URL berpindah kekal: gunakan server-side 301 atau 308. Routing sementara: gunakan 302 atau 307. Content tiada tanpa relevant replacement: pulangkan 404 atau 410. Kemudian selaraskan link, Sitemap, hreflang dan metadata.
Canonicalization ialah pemilihan, bukan pemadaman
Google mengumpulkan page dengan primary content duplicate atau sangat serupa, kemudian memilih URL yang dianggap paling lengkap dan berguna sebagai representative. Canonical terpilih biasanya dicrawl lebih kerap; alternate boleh dicrawl kurang dan lazimnya tidak dipaparkan berasingan.
Duplicate status bukan penalty automatik. Ia menjadi masalah apabila important URL kehilangan selection, signal berpecah antara avoidable variants, tracking tidak konsisten atau crawler memasuki URL space yang tidak terkawal.
| Istilah | Maksud | Bukan bermaksud |
|---|---|---|
| Canonical cluster | URL yang dianggap duplicate atau sangat serupa | Setiap byte mesti sama |
| User-declared Canonical | URL pilihan pemilik site | Arahan yang Google wajib ikut |
| Google-selected Canonical | Representative dipilih selepas signal dinilai | Semua alternate rosak |
| Alternate URL | URL lain dalam cluster sama | Separate landing page secara default |
| Redirect source | URL yang menghantar request ke lokasi lain | URL yang patut kekal dalam Sitemap |
Pilih control berdasarkan pengalaman user
| Outcome | Control utama | Browser | Jangkaan index |
|---|---|---|---|
| Kedua-dua equivalent URL kekal tersedia | rel="canonical" | Requested URL kekal | Satu representative dipilih |
| Old URL berpindah kekal | HTTP 301/308 | Browser ke new URL | Target menjadi preferred |
| Routing benar-benar sementara | HTTP 302/307 | Browser berpindah sementara | Source kekal preferred |
| Content tiada tetapi ada close replacement | 301/308 ke replacement | User tiba pada equivalent content | Signal boleh consolidate |
| Content tiada dan tiada replacement | HTTP 404/410 | Useful not-found page | Old URL keluar beransur |
| Page accessible tetapi tidak mahu index | noindex | Page masih boleh digunakan | Dikeluarkan selepas recrawl |
| Private content | Authentication dan authorization | Access control | Tidak publicly retrievable |
Canonical signals mempunyai kekuatan berbeza
Google mendokumenkan permanent redirect dan rel="canonical" sebagai strong signals, manakala Sitemap inclusion lebih lemah. Internal links, HTTPS, content similarity dan hreflang cluster juga mempengaruhi selection. Signal yang selari menguatkan preference; conflict menjadikan outcome kurang predictable.
Self-referential Canonical ialah default berguna untuk preferred indexable pages. Namun ia tidak membaiki thin content, inaccessible page atau routing conflict.
| Signal | Peranan | Production rule |
|---|---|---|
| Permanent redirect | Strong move dan consolidation signal | Source terus ke final relevant target |
| HTML/HTTP Canonical | Strong preference untuk equivalent content | Satu absolute, fetchable target |
| Sitemap inclusion | Weaker preferred-inventory signal | Final Canonical 200 URLs sahaja |
| Internal links | Repeated discovery dan preference | Link terus ke preferred URL |
| HTTPS dan stable host | Protocol/host consistency | Elak HTTPS-to-HTTP hop |
| hreflang | Locale relationship | Setiap locale Canonical dalam bahasa sendiri |
Canonical target mesti lulus equivalence gate
- Primary content dan purpose duplicate, sangat serupa atau B ialah useful superset.
- B ialah landing page yang betul untuk search intent sama.
- B public, fetchable dan memberi stable HTTP 200.
- B indexable serta tidak disekat daripada crawler.
- B tidak redirect atau Canonical ke URL ketiga.
- A dan B menggunakan bahasa yang betul.
- Template, structured data dan visible identity selari dengan B.
- Permanent redirect tidak lebih sesuai untuk user.
Implement rel=canonical tanpa ambiguity
Untuk HTML, letakkan satu Canonical link dalam <head> yang valid dan gunakan fully qualified URL. Untuk PDF atau non-HTML document, Link HTTP response header boleh digunakan. Pilih satu kaedah yang maintainable; HTML dan header serentak lebih mudah bercanggah.
Source HTML paling selamat untuk JavaScript application. Jika JavaScript perlu inject element, jangan tukar value asal kepada destination lain dan jangan cipta multiple Canonicals.
| Implementation | Kegunaan | QA evidence |
|---|---|---|
| HTML Canonical link | Normal HTML pages | Satu absolute value dalam final head |
| HTTP Link header | PDF atau non-HTML | Header pada actual 200 response |
| JavaScript injection | Hanya jika source HTML tidak boleh | Rendered head ada satu stable value |
| Sitemap-only preference | Large inventory tanpa tag mapping | Useful tetapi lebih lemah |
Audit pattern yang menghasilkan duplicate URL
| Pattern | Typical decision | Semak |
|---|---|---|
| HTTP/HTTPS dan www/non-www | Permanent redirect ke satu HTTPS host | Certificate, hop, Canonical dan links |
| Trailing slash, case atau index.html | Normalize secara konsisten | File dan directory behavior |
| UTM dan click ID | Canonical ke clean equivalent | Parameter tidak ubah content |
| Sort dan view parameters | Canonical jika materially equivalent | User value dan crawl growth |
| Filter dan facets | Index hanya distinct demand-led combinations | Inventory, empty state dan combinations |
| Print atau download equivalent | Canonical/header jika sesuai | Format-specific user need |
| Product variants | Separate jika intent dan content distinct | Availability, price, ID dan demand |
| Copied category/article paths | Satu stable route atau consolidation | Navigation, legacy link dan ownership |
Penomboran halaman, filter dan internal search perlukan keputusan berasingan
Paginated page lazimnya memaparkan item berbeza daripada page satu. Canonical semua pagination ke page satu boleh menghapuskan useful discovery path. Beri self-Canonical kepada pagination yang mempunyai standalone purpose; kawal weak search, filter dan sort space pada generating system.
Internal search-result pages biasanya tidak patut menjadi search landing pages. Keluarkan daripada indexable navigation dan Sitemap, gunakan index control sesuai, dan ganti recurring demand dengan curated category URL.
| URL type | Default | Exception test |
|---|---|---|
| Penomboran halaman | Self-Canonical useful pages | Distinct item set dan crawl path? |
| Sort variant | Canonical ke unsorted equivalent | Order ada separate search value? |
| Filter/facet | Exclude atau consolidate by pattern | Combination berguna, stocked dan unique? |
| Internal search | Noindex dan tiada dalam Sitemap | Curated category lebih sesuai? |
| Tracking parameter | Canonical ke clean URL | Content benar-benar sama? |
Multilingual pages ialah alternate, bukan duplicate automatik
English, Malay dan Simplified Chinese yang diterjemah sepenuhnya patut menggunakan self-referential Canonical dalam locale sendiri dan reciprocal hreflang. Jangan Canonicalize semua translation ke English hanya kerana layout dan topic sama.
Jika hanya navigation diterjemah tetapi primary content tidak, Google boleh menganggap URL duplicate. Baiki content purpose dahulu. Ikuti panduan multilingual SEO.
- Setiap locale mempunyai primary content yang benar-benar dilokalkan.
- Setiap locale guna absolute self-Canonical.
- Semua alternate memberi 200 dan indexable.
- hreflang reciprocal dan menuju Canonical URLs.
- Language, title, heading, schema dan navigation selari.
- Redirect tidak memaksa bahasa berdasarkan andaian semata-mata.
Pilih HTTP redirect berdasarkan permanence dan method
| Status | Maksud | Cari use | Request method |
|---|---|---|---|
| 301 | Permanent new URI | Target patut jadi Canonical | Sesetengah client tukar POST ke GET |
| 308 | Permanent new URI | Tujuan Cari sama seperti 301 | Preserve method |
| 302 | Temporary different URI | Source patut kekal preferred | Sesetengah client tukar POST ke GET |
| 303 | Retrieve resource lain selepas action | Temporary class | Follow-up guna GET/HEAD |
| 307 | Temporary different URI | Source patut kekal preferred | Preserve method |
Utamakan server-side redirect
HTTP redirect memberi status dan Location sebelum rendering, jadi move jelas kepada user, crawler dan monitoring tools. Google mengesyorkan server-side redirect apabila boleh.
Instant meta refresh boleh dianggap permanent dan delayed refresh sebagai temporary, tetapi kedua-duanya perlukan page load. JavaScript redirect bergantung pada rendering dan hanya sesuai sebagai fallback.
| Method | Reliability | Role |
|---|---|---|
| HTTP server/CDN | Tertinggi | Primary implementation |
| Instant meta/HTTP refresh | Lebih rendah | Fallback tanpa server control |
| Delayed refresh | Temporary | Rare user flow |
| JavaScript location | Rendering-dependent | Last fallback |
| Visual link sahaja | Bukan redirect | Navigation support |
Redirect map ialah migration contract
Mulakan dengan complete old inventory daripada Sitemap, CMS export, analytics landing pages, Search Console, backlink, log dan campaign URL. Setiap source perlu satu outcome, reason, owner dan validation state.
SEOWithJack menyimpan evidence ini dalam migration/redirect-map.csv. Map semasa preserve original articles, consolidate /what-is-seo/ ke beginner guide, pindahkan renamed pages ke exact replacement dan mengekalkan 410 yang disengajakan daripada menghantar URL tidak relevan ke homepage.
| Field | Tujuan | Acceptance |
|---|---|---|
| Source URL | Exact old route | Unique dan complete |
| Target/status | Destination, 404 atau 410 | Tiada ambiguous blank |
| HTTP status | Permanent, temporary atau removed | Selari dengan decision |
| Relationship | Equivalent, consolidated atau retired | Same user intent |
| Metadata action | Preserve, merge atau replace | Tiada accidental loss |
| Validation | Observed hop dan final response | Source → one hop → final |
| Owner/note | Accountability dan exception | Boleh direview selepas launch |
Map berdasarkan intent, bukan perkataan sama
| Old-page state | Outcome betul | Shortcut salah |
|---|---|---|
| Content sama di new URL | 301/308 ke exact page | Laman Utamapage redirect |
| Beberapa pages benar-benar digabung | Semua ke consolidated resource | Biarkan thin duplicates |
| Discontinued product dengan successor | Redirect jika successor memenuhi need sama | Nearest category tanpa intent |
| Expired campaign dengan evergreen equivalent | Redirect jika expectation masih relevan | Semua campaign redirect forever |
| Tiada content/replacement | 404/410 dengan useful navigation | Soft 404 yang return 200 |
| Legal/safety removal | Required response dan documented process | Canonical sahaja |
Elakkan chain, loop dan broad rule
Setiap known old URL patut terus ke final preferred URL. Google boleh ikut beberapa hop tetapi menyarankan direct destination; chain tambah latency dan sukar diselenggara. Loop gagal sepenuhnya.
Pattern rule hanya selamat selepas exception diselesaikan. Uji uppercase, encoded character, query string, trailing slash, file, locale prefix dan similar-looking URL daripada content berbeza.
- Tiada source menjadi unintended intermediate target.
- Target tidak redirect lagi kecuali benar-benar perlu.
- Tiada unrelated content ke homepage atau generic service.
- Query strings sengaja retained, transformed atau removed.
- HTTP tidak melalui HTTPS lalu kembali ke HTTP.
- Locale route kekal dalam bahasa sesuai.
- Assets, verification files dan endpoints tidak tertangkap.
- Custom 404 memberi real HTTP 404.
Selaraskan semua signal selepas permanent move
| Surface | Update | Sebab |
|---|---|---|
| Canonical | New page self-reference final URL | Buang old preference |
| Internal links | Terus ke final URL | Tidak bergantung pada redirect |
| XML Sitemap | Final 200 Canonical URLs sahaja | Clean preferred inventory |
| hreflang | New reciprocal locale URLs | Valid alternate cluster |
| Schema/Open Graph | Final public identity URL | Entity dan sharing consistency |
| Analytics, ads, profiles | Ganti old destination | Attribution dan speed |
| Controlled backlinks | Update high-value references | Kurangkan redirect load |
Sequence site move yang terkawal
- Freeze scope dan tentukan sama ada URL benar-benar perlu berubah.
- Export old URL, response, Canonical, metadata, hreflang, Sitemap, traffic dan backlink.
- Crawl new environment dan lindungi staging dengan authentication.
- Map setiap old URL ke relevant target atau deliberate terminal response.
- Generate Canonical, hreflang, link, metadata dan Sitemap daripada route source yang sama.
- Test complete redirect map sebelum DNS atau routing change.
- Launch new pages dan server-side redirects bersama.
- Buang temporary noindex daripada intended public pages.
- Verify templates, locales, assets, forms, phone dan WhatsApp.
- Untuk domain/subdomain move, submit Change of Address selepas redirect live.
- Submit new Sitemap dan crawl full old inventory pada production.
- Monitor old/new properties, logs, indexing, performance dan conversion by cohort.
- Kekalkan redirect sekurang-kurangnya setahun dan lebih lama jika masih digunakan.
Gunakan Change of Address untuk move yang betul
| Move | Change of Address? | Masih perlu |
|---|---|---|
| Old domain ke new domain | Ya, selepas redirects live | Verify properties, map dan Sitemap |
| Subdomain ke domain/subdomain lain | Ya untuk setiap property | Variants dan redirects |
| HTTP ke HTTPS | Tidak | Permanent redirects dan Canonicals |
| www ke non-www | Tidak | Redirect dan Canonical consistency |
| Path change dalam same site | Tidak | One-to-one redirects dan Sitemap |
| Hosting/CDN change tanpa URL change | Tidak | DNS, availability dan crawl capacity |
Diagnose Google memilih Canonical lain
Bandingkan tested URL, user-declared Canonical dan Google-selected Canonical dalam URL Inspection. Live test tidak menilai duplicate clustering, jadi gunakan indexed result, crawl date dan page evidence.
| Finding | Likely cause | Action |
|---|---|---|
| Declared target tidak similar | Canonical merentas intent | Separate atau consolidate dengan jujur |
| Target redirect/error | Generated Canonical bukan final 200 | Baiki route source of truth |
| Internal links pilih URL lain | Architecture conflict | Update links/navigation |
| Sitemap list duplicates | Inventory conflict | Regenerate clean Sitemap |
| Locale menunjuk English | Canonical/hreflang bercampur | Self-Canonical setiap locale |
| External domain dipilih | Mirroring, hack atau annotation | Audit response, HTML, headers dan security |
| Fix baru belum dilihat | Belum recrawl/reprocess | Semak crawl date dan request sekali |
Baca migration evidence mengikut URL cohort
| Evidence | Healthy | Investigate |
|---|---|---|
| Old URL crawl | Googlebot menerima permanent redirect | Old host blocked/slow/down |
| New URL crawl | Final 200 discover dan render | 5xx, robots, noindex atau wrong Canonical |
| Page Indexing | New Canonicals naik; old redirects turun | Wrong clusters atau soft 404 grow |
| Cari performance | Clicks/impressions transfer by group | Valuable cohort hilang |
| Server logs | Old requests satu hop | Loops, chains atau high-volume 404 |
| Conversions | Lead actions dan attribution berfungsi | Traffic pindah tetapi enquiry gagal |
Kesilapan Canonical dan redirect
- Menganggap rel=canonical sebagai directive dijamin.
- Canonicalize page dengan intent atau primary content berbeza.
- Semua retired URL ke homepage.
- Temporary redirect untuk permanent migration tanpa sebab.
- Canonical target redirect, error, blocked atau noindex.
- Old URLs kekal dalam links, Sitemap, hreflang atau schema.
- Multiple Canonicals bercanggah dalam HTML/header.
- robots.txt, noindex atau Removals digunakan untuk canonicalization.
- Translation Canonical ke satu bahasa.
- Generic rule menangkap asset atau verification file.
- Test homepage sahaja.
- Buang redirect sebaik new URL muncul di Cari.
Soalan lazim
Adakah rel=canonical directive?
Tidak. Ia strong preference signal; Google boleh memilih URL lain apabila content, links, redirects atau Sitemap bercanggah.
Perlukah setiap indexable page ada self-Canonical?
Ia default yang robust jika URL absolute, stable, indexable dan dijana dengan betul.
Bolehkah Canonical ke domain lain?
Boleh jika content duplicate atau useful superset dan preference memang disengajakan. Audit dengan teliti.
Bolehkah Canonical URL mempunyai parameter?
Boleh hanya jika parameterized URL ialah preferred stable version. Tracking-only parameters biasanya menuju clean equivalent.
Adakah 301 dan 308 sama untuk SEO?
Kedua-duanya permanent signal untuk Google. Pada HTTP level, 308 preserve request method.
Adakah permanent redirect hilangkan PageRank?
Google menyatakan 301 dan permanent redirect lain tidak menyebabkan PageRank loss. Relevance dan implementation masih penting.
Patutkah removed page ke category?
Hanya jika category memenuhi need sama; jika tidak, return 404 atau 410.
Berapa redirect hops?
Design untuk satu hop walaupun crawler boleh mengikuti lebih daripada satu.
Berapa lama simpan redirects?
Google umumnya menyarankan sekurang-kurangnya satu tahun; simpan lebih lama jika links atau users masih bergantung.
Bila guna Change of Address?
Selepas redirects live untuk domain atau subdomain move, bukan same-domain path, HTTPS, www atau hosting-only move.
Rujukan rasmi
- Google: what URL canonicalization is
- Google: specify a Canonical URL
- Google: redirects and Cari
- Google: site moves with URL changes
- Google URL structure best practices
- Google: troubleshoot canonicalization
- Google Search Console: URL Inspection
- Google Search Console: Page indexing report
- Google Search Console: Change of Address
- Google: localized versions and hreflang
- Google: XML Sitemap implementation
- Google: JavaScript SEO basics
- Google: troubleshoot soft 404 responses
- Google: A/B testing for Cari
- RFC 6596: The Canonical Link Relation
- RFC 9110: HTTP Semantics
Kongsikan old inventory, new route plan dan Search Console properties. Jack boleh review equivalence, bina Redirect Map dan test Canonical, hreflang, Sitemap serta conversion sebelum launch.



Evolusi Ranking Google: Daripada PageRank ke Modern Cari Systems2 September 2026
Kandungan AI dan SEO Google: Apa Dibenarkan, Apa Dianggap Spam dan Cara Publish2 September 2026
Google Florida Update 2003: Fakta, Teori dan Lesson SEO2 September 2026