| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /tmp/ |
Upload File : |
(function(){
var root=document.querySelector('.seo-scan'); if(!root) return;
// Accordion
Array.prototype.forEach.call(root.querySelectorAll('.seo-group-head'),function(h){
h.addEventListener('click',function(){ h.closest('.seo-group').classList.toggle('collapsed'); });
});
// Ladeanzeige beim Scan-Start
var form=root.querySelector('.seo-scan-form');
if(form) form.addEventListener('submit',function(){ var b=form.querySelector('button'); if(b){ b.disabled=true; b.innerHTML='<span class="spinner-border spinner-border-sm me-1"></span> Scan läuft … (kann 1–2 Min. dauern)'; } });
// Filter
var ft='', fc='', fq='';
var btns=root.querySelectorAll('.seo-ftype [data-ft]');
var sel=root.querySelector('.seo-fcat'), search=root.querySelector('.seo-fsearch');
function apply(){
var items=root.querySelectorAll('.seo-item'), anyVisible=false;
Array.prototype.forEach.call(items,function(it){
var ok=(!ft||it.getAttribute('data-type')===ft)
&&(!fc||it.getAttribute('data-cat')===fc)
&&(!fq||it.getAttribute('data-q').indexOf(fq)!==-1);
it.hidden=!ok; if(ok) anyVisible=true;
});
// leere Gruppen/Boxen ausblenden
Array.prototype.forEach.call(root.querySelectorAll('.seo-group, .seo-strengths'),function(g){
var vis=g.querySelectorAll('.seo-item:not([hidden])').length;
g.hidden = vis===0;
var cnt=g.querySelector('.seo-group-count'); if(cnt) cnt.textContent=vis;
});
var empty=root.querySelector('.seo-empty'); if(empty) empty.hidden=anyVisible;
}
if(btns) Array.prototype.forEach.call(btns,function(b){ b.addEventListener('click',function(){ ft=b.getAttribute('data-ft'); Array.prototype.forEach.call(btns,function(x){x.classList.toggle('active',x===b);}); apply(); }); });
if(sel) sel.addEventListener('change',function(){ fc=sel.value; apply(); });
if(search) search.addEventListener('input',function(){ fq=search.value.trim().toLowerCase(); apply(); });
// ===== KI-Prompts (Claude) =====
var modal=document.getElementById('seoPromptModal');
if(modal){
var name=root.getAttribute('data-site-name')||'', siteUrl=root.getAttribute('data-site-url')||'', score=root.getAttribute('data-score')||'';
var ta=modal.querySelector('[data-pmt-text]'), mtitle=modal.querySelector('[data-pmt-title]'), okMsg=modal.querySelector('[data-pmt-ok]');
function openModal(t,text){ mtitle.textContent=t; ta.value=text; okMsg.hidden=true; modal.hidden=false; ta.scrollTop=0; }
function closeModal(){ modal.hidden=true; }
Array.prototype.forEach.call(modal.querySelectorAll('[data-pmt-close]'),function(el){ el.addEventListener('click',closeModal); });
document.addEventListener('keydown',function(e){ if(!modal.hidden && e.key==='Escape') closeModal(); });
modal.querySelector('[data-pmt-copy]').addEventListener('click',function(){
ta.focus(); ta.select();
var done=function(){ okMsg.hidden=false; };
if(navigator.clipboard && navigator.clipboard.writeText){ navigator.clipboard.writeText(ta.value).then(done, function(){ try{document.execCommand('copy');}catch(e){} done(); }); }
else { try{document.execCommand('copy');}catch(e){} done(); }
});
function itemData(el){ var u=[]; try{ u=JSON.parse(el.getAttribute('data-pt-urls')||'[]'); }catch(e){}
return {title:el.getAttribute('data-pt-title')||'',desc:el.getAttribute('data-pt-desc')||'',reco:el.getAttribute('data-pt-reco')||'',
cat:el.getAttribute('data-pt-cat')||'',type:el.getAttribute('data-pt-type')||'',prio:el.getAttribute('data-pt-prio')||'',
cnt:parseInt(el.getAttribute('data-pt-cnt')||'0',10),urls:u}; }
function ctx(){ return 'Website: '+name+' ('+siteUrl+')'+(score?(' · aktueller On-Page-SEO-Score: '+score+'/100'):''); }
function pSingle(d){
var s='Du bist ein erfahrener technischer SEO- und Webentwicklungs-Experte. Behebe das folgende On-Page-SEO-Problem.\n\n';
s+=ctx()+'\n\n';
s+='PROBLEM: '+d.title+'\n';
s+='Kategorie: '+d.cat+' · Einstufung: '+d.type+' (Priorität '+d.prio+')'+(d.cnt>1?(' · betrifft '+d.cnt+' Seiten'):'')+'\n';
s+='Beschreibung: '+d.desc+'\n';
if(d.reco) s+='Bisherige Empfehlung (Ausgangspunkt): '+d.reco+'\n';
if(d.urls.length){ s+='Betroffene URLs:\n'; d.urls.forEach(function(u){ s+='- '+u+'\n'; }); }
s+='\nAUFGABE:\n';
s+='1. Erkläre kurz Ursache und SEO-Relevanz.\n';
s+='2. Liefere eine konkrete, sofort umsetzbare Lösung mit exakten Code-/Markup-Beispielen (HTML, Meta-Tags, .htaccess/Server-Config) bzw. präzisen CMS-Schritten (insbesondere WordPress).\n';
s+='3. Nenne, wie ich die Behebung anschließend überprüfe.\n';
s+='Antworte strukturiert, präzise und auf Deutsch.';
return s;
}
function pAll(items){
var s='Du bist ein erfahrener technischer SEO- und Webentwicklungs-Experte. Erstelle einen priorisierten Maßnahmenplan zur Behebung der folgenden On-Page-SEO-Probleme.\n\n';
s+=ctx()+'\n\nGEFUNDENE PROBLEME UND WARNUNGEN (nach Priorität):\n';
items.forEach(function(d,i){ s+=(i+1)+'. ['+d.cat+' · '+d.type+'/'+d.prio+'] '+d.title+(d.cnt>1?(' (betrifft '+d.cnt+' Seiten)'):'')+'\n '+d.desc+(d.reco?('\n Empfehlung: '+d.reco):'')+'\n'; });
s+='\nAUFGABE:\n- Priorisiere die Maßnahmen (Quick Wins zuerst, größter SEO-Impact zuerst).\n- Gib je Punkt eine konkrete, umsetzbare Lösung mit Code-/Markup-Beispielen bzw. CMS-Schritten (insbesondere WordPress).\n- Fasse am Ende eine klare Schritt-für-Schritt-Reihenfolge zusammen.\nAntworte strukturiert und auf Deutsch.';
return s;
}
Array.prototype.forEach.call(root.querySelectorAll('.seo-prompt-btn'),function(b){
b.addEventListener('click',function(){ var d=itemData(b.closest('.seo-item')); openModal('KI-Prompt: '+d.title, pSingle(d)); });
});
var allBtn=document.getElementById('seoPromptAll');
if(allBtn) allBtn.addEventListener('click',function(){
var items=[]; Array.prototype.forEach.call(root.querySelectorAll('.seo-item'),function(el){ var t=el.getAttribute('data-pt-type'); if(t==='Problem'||t==='Warnung') items.push(itemData(el)); });
var po={Problem:0,Warnung:1}, pr={Hoch:0,Mittel:1,Niedrig:2};
items.sort(function(a,b){ return ((po[a.type]||9)-(po[b.type]||9))||((pr[a.prio]||9)-(pr[b.prio]||9)); });
openModal('KI-Prompt: alle Probleme ('+items.length+')', pAll(items));
});
}
})();