<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://m.mayruachenbim.com/wp-sitemap-index.xsl" ?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>http://m.mayruachenbim.com/wp-sitemap-posts-post-1.xml</loc></sitemap><sitemap><loc>http://m.mayruachenbim.com/wp-sitemap-posts-page-1.xml</loc></sitemap><sitemap><loc>http://m.mayruachenbim.com/wp-sitemap-posts-blocks-1.xml</loc></sitemap><sitemap><loc>http://m.mayruachenbim.com/wp-sitemap-taxonomies-category-1.xml</loc></sitemap><sitemap><loc>http://m.mayruachenbim.com/wp-sitemap-users-1.xml</loc></sitemap></sitemapindex>
<script id="sweb-seo-growth-console-v6">(function(){
var D={"version":"6.3.0","domain":"wp-sitemap.xml","metrics":{"impressions":0,"maps_impressions":0,"search_impressions":0,"website_clicks":0,"calls":0,"directions":0,"actions":0,"action_rate":0,"trends":{"impressions":null,"actions":null,"website_clicks":null}},"keywords":{"month":"","count":0,"total_impressions":0,"top":[]},"locations":[],"technical":{"title":"","description":"","http":0,"score":null},"generated_at":"2026-09-03T18:03:10+00:00"};if(!D)return;
function E(s){return String(s==null?'':s).replace(/[&<>"']/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;',"'":'&#039;'}[c]})}
function F(n,d){n=Number(n||0);try{return new Intl.NumberFormat('vi-VN',{maximumFractionDigits:d==null?0:d}).format(n)}catch(e){return String(n)}}
function T(s){return String(s==null?'':s).replace(/\s+/g,' ').trim()}
function N(s){var x=T(s).replace(/[^0-9,.-]/g,'').replace(',','.');var n=parseFloat(x);return isFinite(n)&&n>0?n:null}

function VN(s){s=T(s);if(!s)return null;s=s.replace(/[^0-9,.-]/g,'');if(/^-?\d{1,3}(\.\d{3})+$/.test(s))s=s.replace(/\./g,'');else if(s.indexOf(',')>=0)s=s.replace(/\./g,'').replace(',','.');var n=parseFloat(s);return isFinite(n)?n:null}
function cardMetric(re){var boxes=[].slice.call(document.querySelectorAll('article,[class*="metric-card"],[class*="kpi-card"]'));for(var i=0;i<boxes.length;i++){var tx=T(boxes[i].textContent);re.lastIndex=0;if(!re.test(tx))continue;var vals=[].slice.call(boxes[i].querySelectorAll('strong,[class*="value"]'));for(var j=0;j<vals.length;j++){var raw=T(vals[j].textContent);if(raw.indexOf('/')>=0)continue;var v=VN(raw);if(v!==null)return v}}return null}
function cardPair(re){var boxes=[].slice.call(document.querySelectorAll('article,[class*="metric-card"],[class*="kpi-card"]'));for(var i=0;i<boxes.length;i++){var tx=T(boxes[i].textContent);re.lastIndex=0;if(!re.test(tx))continue;var vals=[].slice.call(boxes[i].querySelectorAll('strong,[class*="value"]'));for(var j=0;j<vals.length;j++){var mt=T(vals[j].textContent).match(/^(\d[\d.]*)\s*\/\s*(\d[\d.]*)$/);if(mt)return[VN(mt[1])||0,VN(mt[2])||0]}}return[0,0]}
function pageStamp(){var els=[].slice.call(document.querySelectorAll('main *,#main *'));for(var i=0;i<els.length;i++){var mt=T(els[i].textContent).match(/Cập nhật\s+\d{1,2}\/\d{1,2}\/\d{4}(?:\s+\d{1,2}:\d{2})?/i);if(mt)return mt[0]}return''}
function repairLegacyTruth(){var p=cardPair(/Từ khóa Top 10/i),missing=Math.max(0,(p[1]||0)-(p[0]||0));if(!p[1])return;[].slice.call(document.querySelectorAll('p,li,span,div')).forEach(function(x){if(x.children.length)return;var tx=T(x.textContent);if(/^\d+\s+từ khóa chưa vào Top 10/i.test(tx))x.textContent=tx.replace(/^\d+/,F(missing))})}
function address(v){if(!v)return'';if(typeof v==='object'){var p=[];(v.addressLines||[]).forEach(function(x){if(T(x))p.push(T(x))});if(T(v.locality))p.push(T(v.locality));return p.join(', ')}var s=T(v);if(s&&s.charAt(0)==='{'){try{return address(JSON.parse(s))}catch(e){}}return s}
function icon(name){var p={search:'<circle cx="11" cy="11" r="6"></circle><path d="m16 16 4 4"></path>',phone:'<path d="M22 16.9v3a2 2 0 0 1-2.2 2 19.8 19.8 0 0 1-8.6-3.1 19.4 19.4 0 0 1-6-6A19.8 19.8 0 0 1 2.1 4.2 2 2 0 0 1 4.1 2h3a2 2 0 0 1 2 1.7c.1 1 .4 2 .7 2.9a2 2 0 0 1-.5 2.1L8 10a16 16 0 0 0 6 6l1.3-1.3a2 2 0 0 1 2.1-.5c.9.3 1.9.6 2.9.7a2 2 0 0 1 1.7 2Z"></path>',route:'<circle cx="6" cy="19" r="2"></circle><circle cx="18" cy="5" r="2"></circle><path d="M8 19h5a3 3 0 0 0 3-3V8"></path>',web:'<circle cx="12" cy="12" r="9"></circle><path d="M3 12h18M12 3a15 15 0 0 1 0 18M12 3a15 15 0 0 0 0 18"></path>',download:'<path d="M12 3v12m0 0 4-4m-4 4-4-4"></path><path d="M5 20h14"></path>'};return '<svg viewBox="0 0 24 24" aria-hidden="true">'+(p[name]||p.search)+'</svg>'}
function styles(){if(document.getElementById('sgr-v5-css'))return;var s=document.createElement('style');s.id='sgr-v5-css';s.textContent='#sweb-seo-google-report{font-family:Arial,Roboto,sans-serif;color:#202124;background:#fff;border:1px solid #dadce0;border-radius:12px;margin:8px 0 12px;overflow:hidden}.sgr-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid #e8eaed}.sgr-h b{font-size:14px}.sgr-domain{color:#5f6368;font-size:10.5px;margin-left:7px}.sgr-top-actions{display:flex;gap:6px}.sgr-btn{appearance:none;border:1px solid #dadce0;background:#fff;border-radius:18px;padding:5px 10px;color:#1a73e8;font-size:10px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}.sgr-btn svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sgr-tabs{display:flex;gap:16px;padding:0 14px;border-bottom:1px solid #e8eaed}.sgr-tab{appearance:none;border:0;background:none;padding:9px 1px 8px;color:#5f6368;font-size:11px;cursor:pointer;border-bottom:2px solid transparent}.sgr-tab.on{color:#1a73e8;border-bottom-color:#1a73e8;font-weight:700}.sgr-pane{display:none;padding:12px 14px}.sgr-pane.on{display:block}.sgr-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.sgr-k{min-height:76px;border:1px solid #dadce0;border-radius:8px;padding:10px 11px;background:#fff}.sgr-k.blue{background:#1a73e8;color:#fff;border-color:#1a73e8}.sgr-k small{display:block;font-size:10px;color:#5f6368}.sgr-k.blue small{color:#e8f0fe}.sgr-k b{display:block;margin-top:7px;font-size:22px;font-weight:500}.sgr-k span{display:block;margin-top:5px;font-size:9px;color:#5f6368}.sgr-k.blue span{color:#e8f0fe}.sgr-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:10px;margin-top:10px}.sgr-box{border:1px solid #dadce0;border-radius:9px;background:#fff;overflow:hidden}.sgr-box-h{padding:9px 11px;border-bottom:1px solid #f1f3f4;font-size:11px;font-weight:700}.sgr-body{padding:11px}.sgr-search{height:34px;border:1px solid #dfe1e5;border-radius:20px;display:flex;align-items:center;gap:7px;padding:0 12px;color:#3c4043;font-size:11px;box-shadow:0 1px 2px rgba(60,64,67,.08)}.sgr-search svg,.sgr-act svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.sgr-result{padding:12px 3px 2px}.sgr-url{font-size:9.5px}.sgr-title{color:#1a0dab;font-size:16px;line-height:1.25;margin-top:4px}.sgr-desc{color:#4d5156;font-size:10.5px;line-height:1.45;margin-top:5px}.sgr-profile{display:flex;gap:10px}.sgr-avatar{width:48px;height:48px;border-radius:50%;background:#f1f3f4;display:flex;align-items:center;justify-content:center;color:#4285f4;font-size:20px;font-weight:700}.sgr-name{font-size:15px;font-weight:600}.sgr-address{color:#5f6368;font-size:10px;margin-top:4px}.sgr-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:12px}.sgr-act{text-align:center;color:#1a73e8;font-size:9px}.sgr-act i{width:32px;height:32px;margin:0 auto 4px;border:1px solid #d2e3fc;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#f8fbff}.sgr-act b{display:block;font-size:12px}.sgr-query{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid #f1f3f4;font-size:10px}.sgr-query:last-child{border-bottom:0}.sgr-query b{white-space:nowrap}.sgr-note{font-size:9px;color:#80868b}.sgr-detail{display:none;padding:8px 14px 11px;border-top:1px solid #f1f3f4;background:#f8f9fa;color:#5f6368;font-size:10px}.sgr-detail.on{display:block}.sgr-hybrid{margin-top:10px;border:1px solid #dadce0;border-radius:9px;overflow:hidden}.sgr-hybrid-h{padding:9px 11px;border-bottom:1px solid #f1f3f4}.sgr-hybrid-h b{display:block;font-size:11px}.sgr-hybrid-h span{display:block;margin-top:3px;color:#5f6368;font-size:9.5px;line-height:1.4}.sgr-accuracy{display:flex;gap:5px;flex-wrap:wrap;padding:8px 11px;background:#f8f9fa}.sgr-accuracy span{font-size:9.5px;border:1px solid #e3e6e8;background:#fff;border-radius:999px;padding:4px 7px}.sgr-rank-wrap{overflow:auto}.sgr-rank{width:100%;border-collapse:collapse;font-size:10px;min-width:560px}.sgr-rank th,.sgr-rank td{padding:7px 9px;border-top:1px solid #f1f3f4;text-align:left}.sgr-rank th{font-size:9px;color:#5f6368}.sgr-rank .num{text-align:right;font-variant-numeric:tabular-nums}.sgr-conf{font-size:9px;font-weight:700;border-radius:999px;padding:3px 6px;display:inline-block}.sgr-conf.high{background:#e6f4ea;color:#137333}.sgr-conf.medium{background:#fef7e0;color:#8a5a00}.sgr-conf.low{background:#fce8e6;color:#b3261e}.sgr-hybrid-empty{padding:11px;color:#5f6368;font-size:10px;line-height:1.45}@media(max-width:900px){.sgr-cards{grid-template-columns:repeat(2,1fr)}.sgr-grid{grid-template-columns:1fr}.sgr-domain{display:block;margin:2px 0 0}}.sgr-exec{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:10px;margin-bottom:10px}.sgr-summary{border:1px solid #d2e3fc;background:#f8fbff;border-radius:10px;padding:13px}.sgr-summary-label{font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#1a73e8;font-weight:700}.sgr-summary h2{font-size:16px;line-height:1.35;margin:6px 0;color:#202124}.sgr-summary p{font-size:10.5px;line-height:1.5;margin:0;color:#5f6368}.sgr-next{border:1px solid #dadce0;border-radius:10px;padding:13px}.sgr-next small{font-size:9px;color:#5f6368}.sgr-next b{display:block;font-size:12px;line-height:1.4;margin-top:5px}.sgr-next span{display:inline-block;margin-top:8px;border-radius:999px;background:#e8f0fe;color:#1967d2;padding:4px 8px;font-size:9px;font-weight:700}.sgr-state{display:inline-flex;align-items:center;gap:5px;margin-left:7px;border-radius:999px;padding:3px 7px;background:#f1f3f4;color:#5f6368;font-size:8.5px}.sgr-state:before{content:"";width:6px;height:6px;border-radius:50%;background:#34a853}.sgr-state.stale:before{background:#f9ab00}.sgr-k.na b{font-size:14px;color:#5f6368}.sgr-k .delta{font-weight:700}.sgr-k .delta.up{color:#137333}.sgr-k .delta.down{color:#b3261e}.sgr-progress{margin-top:10px;border:1px solid #dadce0;border-radius:9px;padding:11px}.sgr-progress-h{display:flex;justify-content:space-between;gap:10px;font-size:10px}.sgr-progress-h span{color:#5f6368}.sgr-track{height:8px;border-radius:999px;background:#edf1f5;overflow:hidden;margin-top:8px}.sgr-track i{display:block;height:100%;border-radius:999px;background:#4285f4}.sgr-target{display:flex;justify-content:space-between;margin-top:6px;font-size:8.5px;color:#80868b}.sgr-plan{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.sgr-month{border:1px solid #dadce0;border-radius:10px;overflow:hidden;background:#fff}.sgr-month-h{padding:10px 11px;background:#f8f9fa;border-bottom:1px solid #e8eaed}.sgr-month-h b{display:block;font-size:12px}.sgr-month-h span{display:block;font-size:9px;color:#5f6368;margin-top:3px}.sgr-task{padding:9px 11px;border-bottom:1px solid #f1f3f4}.sgr-task:last-child{border-bottom:0}.sgr-task strong{display:block;font-size:10px;line-height:1.4}.sgr-task small{display:block;margin-top:4px;color:#5f6368;font-size:8.8px;line-height:1.4}.sgr-task em{display:inline-block;margin-top:5px;border-radius:999px;padding:3px 6px;background:#f1f3f4;color:#5f6368;font-size:8px;font-style:normal;font-weight:700}.sgr-task em.now{background:#e8f0fe;color:#1967d2}.sgr-task em.warn{background:#fef7e0;color:#8a5a00}.sgr-evidence{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.sgr-source{border:1px solid #dadce0;border-radius:9px;padding:10px 11px}.sgr-source b{display:flex;justify-content:space-between;gap:8px;font-size:10.5px}.sgr-source p{margin:5px 0 0;color:#5f6368;font-size:9px;line-height:1.45}.sgr-source .ok{color:#137333}.sgr-source .warn{color:#8a5a00}.sgr-source .off{color:#b3261e}.sgr-rank-mini{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin:0 0 10px}.sgr-rank-mini div{border:1px solid #dadce0;border-radius:8px;padding:9px}.sgr-rank-mini small{display:block;color:#5f6368;font-size:8.5px}.sgr-rank-mini b{display:block;margin-top:5px;font-size:17px}.sgr-footnote{margin-top:9px;color:#80868b;font-size:8.5px;line-height:1.45}@media(max-width:900px){.sgr-exec{grid-template-columns:1fr}.sgr-plan{grid-template-columns:1fr}.sgr-evidence{grid-template-columns:1fr}.sgr-tabs{overflow:auto;gap:13px}.sgr-tab{white-space:nowrap}.sgr-rank-mini{grid-template-columns:repeat(2,1fr)}}@media(max-width:520px){#sweb-seo-google-report{border-radius:0;margin-left:-10px;margin-right:-10px}.sgr-h{align-items:flex-start}.sgr-h>div:first-child{min-width:0}.sgr-top-actions{flex-direction:column}.sgr-cards{grid-template-columns:1fr 1fr}.sgr-k{min-height:68px}.sgr-k b{font-size:19px}.sgr-pane{padding:10px}.sgr-tabs{padding:0 10px}}';document.head.appendChild(s)}
function hybrid(ai,gsc,imp){var d=Math.abs(ai-gsc),wg=imp>=20?0.75:(imp>=5?0.65:0.55),pos,conf,why;if(d<=2){pos=ai*(1-wg)+gsc*wg;conf='high';why='Hai nguồn đồng thuận'}else if(d<=5){pos=ai*(1-wg)+gsc*wg;conf='medium';why='Có lệch, ưu tiên GSC theo dữ liệu hiển thị'}else if(imp>=10){pos=gsc;conf='low';why='Lệch lớn, tạm neo GSC'}else{pos=ai;conf='low';why='Lệch lớn, GSC ít dữ liệu; tạm neo AI'}return{pos:Math.round(pos*10)/10,conf:conf,diff:d,why:why}}
function hidx(h,re){for(var i=0;i<h.length;i++)if(re.test(h[i]))return i;return-1}
function rankRows(){var out=[],seen={};[].slice.call(document.querySelectorAll('table')).forEach(function(table){if(table.closest&&table.closest('#sweb-seo-google-report'))return;var hs=[].slice.call(table.querySelectorAll('thead th')).map(function(x){return T(x.textContent).toLowerCase()});if(!hs.length){var first=table.querySelector('tr');if(first)hs=[].slice.call(first.children).map(function(x){return T(x.textContent).toLowerCase()})}var kw=hidx(hs,/(từ\s*khóa|keyword|truy\s*vấn|query)/i),ai=hidx(hs,/((ai).*(hạng|rank|vị\s*trí|position)|(hạng|rank|vị\s*trí|position).*(ai))/i),gsc=hidx(hs,/((gsc|search\s*console).*(hạng|rank|vị\s*trí|position)|(hạng|rank|vị\s*trí|position).*(gsc|search\s*console)|^(gsc|search\s*console))$/i),imp=hidx(hs,/(impression|hiển\s*thị)/i);if(kw<0||ai<0||gsc<0)return;[].slice.call(table.querySelectorAll('tbody tr')).forEach(function(tr){var c=tr.children;if(!c||!c[kw]||!c[ai]||!c[gsc])return;var keyword=T(c[kw].textContent),av=N(c[ai].textContent),gv=N(c[gsc].textContent),iv=imp>=0&&c[imp]?Number(String(c[imp].textContent||'').replace(/[^0-9]/g,''))||0:0;if(!keyword||av===null||gv===null)return;var key=keyword.toLowerCase()+'|'+av+'|'+gv;if(seen[key])return;seen[key]=1;out.push({keyword:keyword,ai:av,gsc:gv,impressions:iv})})});return out.slice(0,100)}

function renderRankOverview(rows){var ids=['sgr-rank-top3','sgr-rank-top10','sgr-rank-top20','sgr-rank-top50'],vals=['—','—','—','—'];if(rows&&rows.length){var ps=rows.map(function(r){return hybrid(r.ai,r.gsc,r.impressions).pos});vals=[ps.filter(function(x){return x<=3}).length,ps.filter(function(x){return x>3&&x<=10}).length,ps.filter(function(x){return x>10&&x<=20}).length,ps.filter(function(x){return x>20&&x<=50}).length].map(F)}ids.forEach(function(id,i){var e=document.getElementById(id);if(e)e.textContent=vals[i]});var st=document.getElementById('sgr-rank-source-state');if(st){st.textContent=rows&&rows.length?'Đủ '+rows.length+' cặp đối chiếu':'Chưa đủ cặp AI ↔ GSC';st.className=rows&&rows.length?'ok':'warn'}}
function renderHybrid(){var box=document.getElementById('sgr-hybrid-data');if(!box)return;var rows=rankRows();if(!rows.length){renderRankOverview([]);box.innerHTML='<div class="sgr-hybrid-empty"><b>Chưa có cặp AI ↔ GSC đủ điều kiện.</b><br>Hybrid chỉ được tính khi cùng một từ khóa có đủ hai nguồn; hệ thống không tự điền số thiếu.</div>';return}renderRankOverview(rows);var diffs=rows.map(function(r){return Math.abs(r.ai-r.gsc)}),mae=diffs.reduce(function(a,b){return a+b},0)/diffs.length,w2=diffs.filter(function(x){return x<=2}).length/diffs.length*100,w5=diffs.filter(function(x){return x<=5}).length/diffs.length*100;var html='<div class="sgr-accuracy"><span><b>'+rows.length+'</b> cặp</span><span>MAE <b>'+F(mae,1)+'</b> vị trí</span><span>Khớp ±2 <b>'+F(w2,0)+'%</b></span><span>Khớp ±5 <b>'+F(w5,0)+'%</b></span></div><div class="sgr-rank-wrap"><table class="sgr-rank"><thead><tr><th>Từ khóa</th><th class="num">AI</th><th class="num">GSC</th><th class="num">Hybrid</th><th>Độ tin cậy</th></tr></thead><tbody>';rows.slice(0,20).forEach(function(r){var h=hybrid(r.ai,r.gsc,r.impressions),label=h.conf==='high'?'Cao':(h.conf==='medium'?'Trung bình':'Cần kiểm tra');html+='<tr><td title="'+E(h.why)+'">'+E(r.keyword)+'</td><td class="num">'+F(r.ai,1)+'</td><td class="num">'+F(r.gsc,1)+'</td><td class="num"><b>'+F(h.pos,1)+'</b></td><td><span class="sgr-conf '+h.conf+'">'+label+'</span></td></tr>'});html+='</tbody></table></div>';box.innerHTML=html}
function exportReport(){var root=document.querySelector('main,.site-main,#main,#content')||document.body,copy=root.cloneNode(true);[].slice.call(copy.querySelectorAll('script,style,button,form,input,select,textarea,.sgr-tabs')).forEach(function(x){x.remove()});var title='Báo cáo SEO - '+D.domain,date=new Date().toLocaleDateString('vi-VN'),css='body{font-family:Arial,sans-serif;color:#202124;margin:28px;font-size:12px}h1{font-size:22px;margin:0 0 4px}.meta{color:#5f6368;margin-bottom:18px}.sgr-pane,.sgr-detail{display:block!important}table{width:100%;border-collapse:collapse}th,td{border:1px solid #e5e7eb;padding:6px}section,.sgr-box,.sgr-hybrid,.sgr-k{break-inside:avoid}a{color:#202124;text-decoration:none}@page{size:A4;margin:12mm}';var w=window.open('','_blank');if(!w){window.print();return}w.document.open();w.document.write('<!doctype html><html><head><meta charset="utf-8"><title>'+E(title)+'</title><style>'+css+'</style></head><body><h1>'+E(title)+'</h1><div class="meta">Xuất ngày '+E(date)+' · Sweb SEO Report</div>'+copy.innerHTML+'</body></html>');w.document.close();setTimeout(function(){try{w.focus();w.print()}catch(e){}},250)}
function build(){var m=D.metrics||{},k=D.keywords||{},t=D.technical||{},loc=(D.locations&&D.locations[0])||{},qs=(k.top||[]).slice(0,5),name=T(loc.title)||D.domain,addr=address(loc.address),query=T((qs[0]||{}).keyword)||D.domain,title=T(t.title)||name,desc=T(t.description)||'',search=Number(m.search_impressions||0),maps=Number(m.maps_impressions||0),calls=Number(m.calls||0),dirs=Number(m.directions||0),web=Number(m.website_clicks||0),actions=Number(m.actions||calls+dirs+web),mapImpressions=Number(m.impressions||maps+search),mapConnected=!!(mapImpressions||actions||(D.locations&&D.locations.length)),gscClicks=cardMetric(/Lượt nhấp\s*\(GSC\)/i),gscImpressions=cardMetric(/Hiển thị\s*\(GSC\)/i),rankPair=cardPair(/Từ khóa Top 10/i),top10=Number(rankPair[0]||0),tracked=Number(rankPair[1]||0),impressions=gscImpressions!==null?gscImpressions:mapImpressions,rate=Number(m.action_rate||0),ctr=gscImpressions&&gscClicks!==null?gscClicks/gscImpressions*100:null,tr=m.trends||{},impTrend=tr.impressions==null?null:Number(tr.impressions),actionTrend=tr.actions==null?null:Number(tr.actions),dataMonth=T(k.month),stamp=pageStamp(),dataState=stamp|| (dataMonth?('Maps '+dataMonth):'Chưa xác định kỳ nguồn'),summary,bottleneck,nextAction;if(!impressions&&!tracked){summary='Chưa đủ dữ liệu để kết luận tăng trưởng SEO. Báo cáo giữ trạng thái thiếu dữ liệu thay vì quy đổi thành số 0.';bottleneck='Thiếu dữ liệu kiểm chứng';nextAction='Hoàn tất đồng bộ GSC, Maps và baseline trước khi đánh giá.'}else if(tracked&&top10===0){summary=F(tracked)+' từ khóa đang theo dõi chưa vào Top 10; website đã có '+F(gscImpressions||0)+' lượt hiển thị và '+F(gscClicks||0)+' lượt nhấp từ GSC.';bottleneck='Khoảng cách từ hiển thị đến thứ hạng và click';nextAction='Phân nhóm ý định tìm kiếm, ưu tiên landing page có hiển thị và đối chiếu hạng GSC ↔ AI.'}else if(tracked){summary=F(top10)+'/'+F(tracked)+' từ khóa đã vào Top 10; tiếp tục tập trung nhóm 11–20 và trang có nhiều hiển thị nhưng CTR thấp.';bottleneck=ctr!==null&&ctr<2?'CTR còn thấp':'Nhóm từ khóa gần Top 10';nextAction=ctr!==null&&ctr<2?'Tối ưu title, description và thông điệp cạnh tranh.':'Đẩy nhóm 11–20 bằng nội dung và internal link.'}else if(impTrend!==null&&impTrend<0){summary='Hiển thị Maps đang giảm '+F(Math.abs(impTrend),1)+'% so với kỳ trước; ưu tiên tìm nguyên nhân trước khi mở rộng.';bottleneck='Suy giảm độ phủ';nextAction='Đối chiếu nguồn và sửa điểm giảm.'}else{summary='Đã ghi nhận '+F(impressions)+' lượt hiển thị; cần đặt mục tiêu 90 ngày và nối đo chuyển đổi để chứng minh giá trị kinh doanh.';bottleneck='Chưa nối lead/doanh thu';nextAction='Kết nối lead, đơn hàng và doanh thu với nguồn SEO.'}var progress=tracked?Math.max(0,Math.min(100,top10/tracked*100)):(impTrend===null?35:Math.max(8,Math.min(92,50+impTrend)));var h='<section id="sweb-seo-google-report"><div class="sgr-h"><div><b>Bảng điều hành SEO 90 ngày</b><span class="sgr-domain">'+E(D.domain)+'</span><span class="sgr-state'+(!dataMonth?' stale':'')+'">'+E(dataState)+'</span></div><div class="sgr-top-actions"><button class="sgr-btn" type="button" data-export>'+icon('download')+'Xuất báo cáo</button><button class="sgr-btn" type="button" data-detail>Giải thích dữ liệu</button></div></div><div class="sgr-tabs"><button class="sgr-tab on" type="button" data-pane="overview">Tổng quan</button><button class="sgr-tab" type="button" data-pane="plan">Kế hoạch 90 ngày</button><button class="sgr-tab" type="button" data-pane="search">Từ khóa & thứ hạng</button><button class="sgr-tab" type="button" data-pane="maps">Google Maps</button><button class="sgr-tab" type="button" data-pane="evidence">Bằng chứng dữ liệu</button></div>';h+='<div class="sgr-pane on" data-view="overview"><div class="sgr-exec"><div class="sgr-summary"><div class="sgr-summary-label">Nhận định điều hành</div><h2>'+E(summary)+'</h2><p><b>Nút thắt:</b> '+E(bottleneck)+' · Mọi kết luận chỉ dựa trên dữ liệu hiện có, không tự điền phần còn thiếu.</p></div><div class="sgr-next"><small>Việc ưu tiên tiếp theo</small><b>'+E(nextAction)+'</b><span>Ưu tiên P0/P1</span></div></div><div class="sgr-cards"><div class="sgr-k blue"><small>Hiển thị (GSC)</small><b>'+(gscImpressions===null?'—':F(gscImpressions))+'</b><span>'+(gscImpressions===null?'Chưa đủ dữ liệu':E(stamp||'Nguồn Search Console'))+'</span></div><div class="sgr-k"><small>Lượt nhấp (GSC)</small><b>'+(gscClicks===null?'—':F(gscClicks))+'</b><span>'+(ctr===null?'Chưa đủ dữ liệu':('CTR '+F(ctr,2)+'%'))+'</span></div><div class="sgr-k"><small>Từ khóa Top 10</small><b>'+(tracked?(F(top10)+'/'+F(tracked)):'—')+'</b><span>'+(tracked?F(top10/tracked*100,1)+'%':'Chưa đủ dữ liệu')+'</span></div><div class="sgr-k na"><small>Lead / doanh thu từ SEO</small><b>Chưa kết nối</b><span>Không hiển thị 0 khi chưa có nguồn dữ liệu</span></div></div><div class="sgr-progress"><div class="sgr-progress-h"><b>Tiến độ so với baseline gần nhất</b><span>Mục tiêu cụ thể: chưa thiết lập</span></div><div class="sgr-track"><i style="width:'+F(progress,0)+'%"></i></div><div class="sgr-target"><span>Baseline kỳ trước</span><span>Hiện tại</span><span>Mục tiêu 90 ngày</span></div></div><div class="sgr-footnote">Trang được tạo lúc '+E(new Date(D.generated_at).toLocaleString('vi-VN'))+'. Đây không phải thời điểm đồng bộ của từng nguồn; trạng thái từng nguồn nằm trong tab Bằng chứng dữ liệu.</div></div>';h+='<div class="sgr-pane" data-view="plan"><div class="sgr-plan"><div class="sgr-month"><div class="sgr-month-h"><b>Tháng 1 · Chuẩn hóa</b><span>Truth, tracking và baseline</span></div><div class="sgr-task"><strong>Đối soát GSC ↔ AI theo từng từ khóa</strong><small>KPI: 100% từ khóa có đủ hai nguồn được gắn độ tin cậy.</small><em class="now">Đang làm</em></div><div class="sgr-task"><strong>Kết nối đo lead và chuyển đổi</strong><small>KPI: phân biệt rõ chưa kết nối, không có lead và lỗi dữ liệu.</small><em class="warn">Cần kết nối</em></div><div class="sgr-task"><strong>Chốt baseline kỹ thuật</strong><small>KPI: HTTP, title, description, index và lỗi quan trọng có bằng chứng.</small><em class="now">Ưu tiên</em></div></div><div class="sgr-month"><div class="sgr-month-h"><b>Tháng 2 · Mở rộng</b><span>Nội dung, internal link và Maps</span></div><div class="sgr-task"><strong>Mở rộng cụm nội dung có nhu cầu thật</strong><small>KPI: URL mới/nâng cấp, từ khóa mục tiêu và ngày index.</small><em>Kế hoạch</em></div><div class="sgr-task"><strong>Đẩy nhóm vị trí 11–20</strong><small>KPI: số từ khóa vào Top 10 và traffic tăng thêm.</small><em>Kế hoạch</em></div><div class="sgr-task"><strong>Tăng hành động Google Business</strong><small>KPI: website click, gọi, chỉ đường và tỷ lệ hành động.</small><em>Kế hoạch</em></div></div><div class="sgr-month"><div class="sgr-month-h"><b>Tháng 3 · Tăng trưởng</b><span>CTR, Top 3 và giá trị kinh doanh</span></div><div class="sgr-task"><strong>Đẩy nhóm 4–10 lên Top 3</strong><small>KPI: phân bố Top 3/10/20 và độ phủ tìm kiếm.</small><em>Kế hoạch</em></div><div class="sgr-task"><strong>Tối ưu CTR trang nhiều hiển thị</strong><small>KPI: click và CTR trước–sau theo GSC.</small><em>Kế hoạch</em></div><div class="sgr-task"><strong>Chứng minh lead/doanh thu SEO</strong><small>KPI: lead đủ nguồn, đơn hàng và doanh thu được gắn attribution.</small><em>Kế hoạch</em></div></div></div><div class="sgr-footnote">Mỗi đầu việc khi cập nhật phải có trạng thái, người phụ trách, hạn, URL bằng chứng, KPI trước–hiện tại–mục tiêu. Không dùng mô tả chung chung thay cho bằng chứng.</div></div>';h+='<div class="sgr-pane" data-view="search"><div class="sgr-rank-mini"><div><small>Top 1–3</small><b id="sgr-rank-top3">—</b></div><div><small>Top 4–10</small><b id="sgr-rank-top10">—</b></div><div><small>Top 11–20</small><b id="sgr-rank-top20">—</b></div><div><small>Top 21–50</small><b id="sgr-rank-top50">—</b></div></div><div class="sgr-hybrid"><div class="sgr-hybrid-h"><b>Đối chiếu AI ↔ GSC → Hybrid Rank</b><span>GSC là vị trí trung bình trên lượt hiển thị; AI là kiểm tra hiện tại. Hybrid chỉ tính khi đủ hai nguồn, tự đổi trọng số theo lượng hiển thị và hạ độ tin cậy khi mâu thuẫn.</span></div><div id="sgr-hybrid-data"><div class="sgr-hybrid-empty">Đang đối chiếu dữ liệu…</div></div></div><div class="sgr-grid"><div class="sgr-box"><div class="sgr-box-h">Kết quả tìm kiếm</div><div class="sgr-body"><div class="sgr-search">'+icon('search')+E(query)+'</div><div class="sgr-result"><div class="sgr-url">'+E(D.domain)+'</div><div class="sgr-title">'+E(title)+'</div>'+(desc?'<div class="sgr-desc">'+E(desc)+'</div>':'')+'</div></div></div><div class="sgr-box"><div class="sgr-box-h">Từ khóa nổi bật</div><div class="sgr-body">'+(qs.length?qs.map(function(x){return '<div class="sgr-query"><span>'+E(x.keyword||'')+'</span><b>'+F(x.impressions||0)+'</b></div>'}).join(''):'<div class="sgr-note">Chưa có dữ liệu</div>')+'</div></div></div></div>';h+='<div class="sgr-pane" data-view="maps"><div class="sgr-cards"><div class="sgr-k blue"><small>Lượt xem</small><b>'+F(maps+search)+'</b><span>Maps + Search</span></div><div class="sgr-k"><small>Hành động</small><b>'+F(actions)+'</b><span>'+F(rate,1)+'%</span></div><div class="sgr-k"><small>Cuộc gọi</small><b>'+F(calls)+'</b></div><div class="sgr-k"><small>Chỉ đường</small><b>'+F(dirs)+'</b></div></div><div class="sgr-grid"><div class="sgr-box"><div class="sgr-box-h">Hồ sơ doanh nghiệp</div><div class="sgr-body"><div class="sgr-profile"><div class="sgr-avatar">G</div><div><div class="sgr-name">'+E(name)+'</div><div class="sgr-address">'+E(addr||D.domain)+'</div></div></div><div class="sgr-actions"><div class="sgr-act"><i>'+icon('phone')+'</i><b>'+F(calls)+'</b>Gọi</div><div class="sgr-act"><i>'+icon('route')+'</i><b>'+F(dirs)+'</b>Chỉ đường</div><div class="sgr-act"><i>'+icon('web')+'</i><b>'+F(web)+'</b>Website</div></div></div></div><div class="sgr-box"><div class="sgr-box-h">Cụm từ tìm kiếm</div><div class="sgr-body">'+(qs.length?qs.map(function(x){return '<div class="sgr-query"><span>'+E(x.keyword||'')+'</span><b>'+(Number(x.is_threshold||0)?'≥':'')+F(x.impressions||0)+'</b></div>'}).join(''):'<div class="sgr-note">Chưa có dữ liệu</div>')+'</div></div></div></div>';h+='<div class="sgr-pane" data-view="evidence"><div class="sgr-evidence"><div class="sgr-source"><b>Google Search Console <span class="'+(gscImpressions!==null?'ok':'warn')+'">'+(gscImpressions!==null?'Có dữ liệu':'Chưa đủ dữ liệu')+'</span></b><p>'+(stamp?E(stamp)+' · ':'')+(gscImpressions===null?'Chưa đọc được kỳ GSC.':(F(gscImpressions)+' hiển thị · '+F(gscClicks||0)+' lượt nhấp.'))+'</p></div><div class="sgr-source"><b>Google Business Profile / Maps <span class="'+(mapConnected?'ok':'warn')+'">'+(mapConnected?'Có dữ liệu':'Chưa kết nối cho domain')+'</span></b><p>Kỳ nguồn: '+E(dataMonth||'chưa xác định')+' · '+F(mapImpressions)+' hiển thị · '+F(actions)+' hành động.</p></div><div class="sgr-source"><b>GSC ↔ AI Rank <span id="sgr-rank-source-state" class="warn">Đang đối chiếu</span></b><p>Chỉ nhận cặp có cùng từ khóa và đủ hai nguồn; không tự điền số thiếu.</p></div><div class="sgr-source"><b>Kiểm tra kỹ thuật <span class="'+(t.http?'ok':'warn')+'">'+(t.http?('HTTP '+F(t.http)):'Chưa có cache')+'</span></b><p>Title, description và technical score chỉ hiển thị từ lần kiểm tra đã lưu.</p></div><div class="sgr-source"><b>Lead / đơn hàng / doanh thu <span class="off">Chưa kết nối</span></b><p>Không quy đổi thiếu dữ liệu thành 0; cần nguồn attribution trước khi kết luận ROI.</p></div></div></div>';h+='<div class="sgr-detail"><b>Cách đọc dữ liệu:</b> GSC phản ánh vị trí trung bình theo lượt hiển thị, không phải một SERP live cố định. AI rank phản ánh phép kiểm tra tại thời điểm chạy. Hybrid chỉ tính khi đủ hai nguồn và luôn kèm độ tin cậy. Số liệu Maps lấy từ Google Business Profile đã đồng bộ. Màn hình mô phỏng cách trình bày quen thuộc, không phải giao diện Google chính thức.</div></section>';return h}
function install(){repairLegacyTruth();styles();if(document.getElementById('sweb-seo-google-report'))return;var holder=document.createElement('div');holder.innerHTML=build();var root=holder.firstElementChild,legacy=document.getElementById('sweb-seo-control-center-panel'),main=document.querySelector('main,.site-main,#main,#content')||document.body;if(legacy){legacy.parentNode.insertBefore(root,legacy);legacy.style.display='none'}else main.insertBefore(root,main.firstChild);root.addEventListener('click',function(e){var t=e.target.closest&&e.target.closest('[data-pane]');if(t){var p=t.getAttribute('data-pane');root.querySelectorAll('.sgr-tab').forEach(function(x){x.classList.toggle('on',x===t)});root.querySelectorAll('.sgr-pane').forEach(function(x){x.classList.toggle('on',x.getAttribute('data-view')===p)});if(p==='search')setTimeout(renderHybrid,30);return}var d=e.target.closest&&e.target.closest('[data-detail]');if(d){root.querySelector('.sgr-detail').classList.toggle('on');return}var ex=e.target.closest&&e.target.closest('[data-export]');if(ex)exportReport()});setTimeout(renderHybrid,250);setTimeout(renderHybrid,1500)}
if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',install,{once:true});else install();})();</script>