Changeset 3773271
- Timestamp:
- 10/29/2026 02:46:41 PM (5 hours ago)
- Location:
- pruefbericht-seo-quick-check
- Files:
-
- 6 edited
- 1 copied
-
tags/3.8.0 (copied) (copied from pruefbericht-seo-quick-check/trunk )
-
tags/3.8.0/pruefbericht-seo-quick-check.php (modified) (14 diffs)
-
tags/3.8.0/readme.txt (modified) (6 diffs)
-
tags/3.8.0/uninstall.php (modified) (1 diff)
-
trunk/pruefbericht-seo-quick-check.php (modified) (14 diffs)
-
trunk/readme.txt (modified) (6 diffs)
-
trunk/uninstall.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
pruefbericht-seo-quick-check/tags/3.8.0/pruefbericht-seo-quick-check.php
r3765225 r3773271 4 4 * Plugin URI: https://meinseocoach.de 5 5 * Description: SEO-Werkzeuge für WordPress: SEO-Quick-Check, KI-Bereitschaft (dürfen GPTBot, ClaudeBot und Co. lesen?), llms.txt erzeugen, Sitemap-Status und Google-Search-Console-Verifikation. Optional verbindbar mit dem SEO Coach (externer Dienst). 6 * Version: 3. 7.06 * Version: 3.8.0 7 7 * Requires at least: 5.8 8 8 * Requires PHP: 7.4 … … 18 18 } 19 19 20 define( 'SDCOACH_VERSION', '3. 7.0' );20 define( 'SDCOACH_VERSION', '3.8.0' ); 21 21 define( 'SDCOACH_MIN_VERSION', '2.1.0' ); // Dashboard erwartet mindestens diese Version 22 22 // Prefix-Konvention: Alle plugineigenen Funktionen, Options, Transients, Post-Meta und … … 738 738 739 739 wp_safe_redirect( add_query_arg( 'sdcoach-checked', '1', admin_url( 'options-general.php?page=pruefbericht-seo-quick-check' ) ) ); 740 exit; 741 } 742 743 // ─── Admin-Post-Handler: Prüfbericht per E-Mail anfordern (seit 3.8.0) ─────── 744 // 745 // Das Plugin verschickt selbst keine Mail. Es öffnet den Prüfbericht des SEO Coach in 746 // einem neuen Tab, Adresse und E-Mail sind dort vorbefüllt. Übertragen wird erst, wenn 747 // der Nutzer dort die Bot-Prüfung löst und auf Prüfen klickt; danach kommt zuerst eine 748 // Bestätigungsmail. Die Werte stehen im Hash, der nie an einen Server geht. 749 750 define( 'SDCOACH_PRUEFBERICHT_URL', 'https://app.meinseocoach.de/pruefbericht' ); 751 752 add_action( 'admin_post_sdcoach_bericht_anfordern', 'sdcoach_handle_bericht_anfordern_action' ); 753 754 function sdcoach_handle_bericht_anfordern_action() { 755 if ( ! current_user_can( 'manage_options' ) ) { 756 wp_die( esc_html__( 'Keine Berechtigung.', 'pruefbericht-seo-quick-check' ) ); 757 } 758 check_admin_referer( 'sdcoach_bericht_anfordern' ); 759 760 $email = isset( $_POST['sdcoach_bericht_email'] ) ? sanitize_email( wp_unslash( $_POST['sdcoach_bericht_email'] ) ) : ''; 761 if ( ! is_email( $email ) ) { 762 wp_safe_redirect( add_query_arg( 'sdcoach-bericht', 'ungueltig', admin_url( 'options-general.php?page=pruefbericht-seo-quick-check' ) ) . '#sdcoach-bericht' ); 763 exit; 764 } 765 766 // Nur der Zeitpunkt, nicht die Adresse: Ob der Nutzer drüben wirklich prüfen ließ, 767 // weiß das Plugin nicht. Deshalb „gestartet“, nie „angefordert“. 768 update_option( 'sdcoach_bericht_gestartet_at', time(), false ); 769 770 $ziel = SDCOACH_PRUEFBERICHT_URL . '#' . http_build_query( 771 [ 772 'url' => home_url( '/' ), 773 'email' => $email, 774 ], 775 '', 776 '&', 777 PHP_QUERY_RFC3986 778 ); 779 // Den fremden Host nur für diese eine Weiterleitung erlauben, nicht für die ganze Website. 780 add_filter( 781 'allowed_redirect_hosts', 782 static function ( $hosts ) { 783 $hosts[] = (string) wp_parse_url( SDCOACH_PRUEFBERICHT_URL, PHP_URL_HOST ); 784 return $hosts; 785 } 786 ); 787 // 303, damit der Browser drüben eine normale Seite lädt und das Formular nicht erneut sendet. 788 wp_safe_redirect( $ziel, 303 ); 740 789 exit; 741 790 } … … 1321 1370 1322 1371 // Schritt-Status: erledigt = Haken, erster offener Schritt = hervorgehoben 1372 $bericht_gestartet = (int) get_option( 'sdcoach_bericht_gestartet_at', 0 ); 1323 1373 $step_done = [ 1324 1374 1 => (bool) get_option( 'sdcoach_quick_check_done_at', 0 ) || ( is_array( $check ) && empty( $check['error'] ) ), 1325 2 => $token !== '' || $gsc_datei !== '', 1326 3 => (bool) get_option( 'sdcoach_coach_connected_at', 0 ), 1375 2 => $bericht_gestartet > 0, 1376 3 => $token !== '' || $gsc_datei !== '', 1377 4 => (bool) get_option( 'sdcoach_coach_connected_at', 0 ), 1327 1378 ]; 1328 $current_step = 4; // 4= alles erledigt1329 foreach ( [ 1, 2, 3 ] as $s ) {1379 $current_step = 5; // 5 = alles erledigt 1380 foreach ( [ 1, 2, 3, 4 ] as $s ) { 1330 1381 if ( ! $step_done[ $s ] ) { 1331 1382 $current_step = $s; … … 1335 1386 $steps = [ 1336 1387 1 => __( 'Schritt 1: Website prüfen', 'pruefbericht-seo-quick-check' ), 1337 2 => __( 'Schritt 2: Google verbinden', 'pruefbericht-seo-quick-check' ), 1338 3 => __( 'Schritt 3: Coach verbinden (optional)', 'pruefbericht-seo-quick-check' ), 1388 2 => $step_done[2] 1389 ? __( 'Schritt 2: Prüfbericht gestartet', 'pruefbericht-seo-quick-check' ) 1390 : __( 'Schritt 2: Prüfbericht per E-Mail', 'pruefbericht-seo-quick-check' ), 1391 3 => __( 'Schritt 3: Google verbinden', 'pruefbericht-seo-quick-check' ), 1392 4 => __( 'Schritt 4: Coach verbinden (optional)', 'pruefbericht-seo-quick-check' ), 1339 1393 ]; 1340 1394 $chip_done = 'background:#e7f7d3;border:1px solid #b5e08a;border-radius:999px;padding:4px 12px;color:#3a5a13;'; … … 1350 1404 <?php if ( $num > 1 ) : ?><span aria-hidden="true">→</span><?php endif; ?> 1351 1405 <?php if ( $step_done[ $num ] ) : ?> 1352 <span style="<?php echo esc_attr( $chip_done ); ?>">✓ <?php echo esc_html( $label ); ?></span> 1406 <?php // Beim Prüfbericht kein Haken: Ob er drüben wirklich angefordert wurde, sieht das Plugin nicht. ?> 1407 <span style="<?php echo esc_attr( $chip_done ); ?>"><?php echo 2 === $num ? '↗' : '✓'; ?> <?php echo esc_html( $label ); ?></span> 1353 1408 <?php elseif ( $num === $current_step ) : ?> 1354 1409 <span style="<?php echo esc_attr( $chip_active ); ?>"><?php echo esc_html( $label ); ?></span> … … 1357 1412 <?php endif; ?> 1358 1413 <?php endforeach; ?> 1359 <?php if ( 4=== $current_step ) : ?>1414 <?php if ( 5 === $current_step ) : ?> 1360 1415 <span style="color:#3a5a13;font-weight:600;">🎉 <?php esc_html_e( 'Alles eingerichtet!', 'pruefbericht-seo-quick-check' ); ?></span> 1361 1416 <?php endif; ?> … … 1369 1424 $sdcoach_sichtbar = isset( $_GET['sdcoach-sichtbar'] ) ? sanitize_key( wp_unslash( $_GET['sdcoach-sichtbar'] ) ) : ''; 1370 1425 $sdcoach_notice_llms = isset( $_GET['sdcoach-llms'] ) ? sanitize_key( wp_unslash( $_GET['sdcoach-llms'] ) ) : ''; 1426 $sdcoach_notice_bericht = isset( $_GET['sdcoach-bericht'] ) ? sanitize_key( wp_unslash( $_GET['sdcoach-bericht'] ) ) : ''; 1371 1427 // phpcs:enable WordPress.Security.NonceVerification.Recommended 1372 1428 ?> … … 1487 1543 $check['gsc_meta'] ? __( 'Google-Verifikations-Tag aktiv', 'pruefbericht-seo-quick-check' ) : __( 'Kein Google-Verifikations-Tag', 'pruefbericht-seo-quick-check' ), 1488 1544 $check['gsc_meta'] ? 'ok' : 'warn', 1489 $check['gsc_meta'] ? '' : __( 'Siehe Abschnitt 2unten: Search Console verbinden.', 'pruefbericht-seo-quick-check' )1545 $check['gsc_meta'] ? '' : __( 'Siehe Abschnitt 3 unten: Search Console verbinden.', 'pruefbericht-seo-quick-check' ) 1490 1546 ); 1491 1547 ?> … … 1569 1625 ?> 1570 1626 </p> 1627 <p class="description"> 1628 <?php esc_html_e( 'Geprüft wurden die technischen Grundlagen deiner Startseite. Ob du bei Google gefunden und angeklickt wirst und auf welchem Platz du stehst, sieht dieser Check nicht. Ein grüner Haken heißt: Die Grundlage stimmt. Er heißt nicht, dass die Website fertig optimiert ist.', 'pruefbericht-seo-quick-check' ); ?> 1629 </p> 1571 1630 <?php elseif ( is_array( $check ) && ! empty( $check['error'] ) ) : ?> 1572 1631 <p><?php esc_html_e( 'Die Startseite konnte nicht abgerufen werden:', 'pruefbericht-seo-quick-check' ); ?> <code><?php echo esc_html( $check['error'] ); ?></code></p> … … 1581 1640 </div> 1582 1641 1583 <!-- Karte 2: Google Search Console --> 1642 <!-- Karte 2: Ausführlicher Prüfbericht per E-Mail (seit 3.8.0) --> 1643 <div id="sdcoach-bericht" style="<?php echo esc_attr( $card ); ?>"> 1644 <h2 style="margin-top:0;"><?php esc_html_e( '2. Ausführlicher Prüfbericht per E-Mail', 'pruefbericht-seo-quick-check' ); ?></h2> 1645 <p> 1646 <?php esc_html_e( 'Der kostenlose Prüfbericht des SEO Coach geht weiter als der Check oben: Er prüft deine Startseite von außen, unter anderem Ladezeit, HTTPS und Inhalt, erklärt jeden Befund mit einer Anleitung und schickt dir das Ergebnis als PDF per E-Mail.', 'pruefbericht-seo-quick-check' ); ?> 1647 </p> 1648 <?php if ( 'ungueltig' === $sdcoach_notice_bericht ) : ?> 1649 <p style="color:#b32d2e;"><?php esc_html_e( 'Das ist keine gültige E-Mail-Adresse. Bitte prüfe die Eingabe.', 'pruefbericht-seo-quick-check' ); ?></p> 1650 <?php endif; ?> 1651 <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" target="_blank" rel="noopener"> 1652 <?php wp_nonce_field( 'sdcoach_bericht_anfordern' ); ?> 1653 <input type="hidden" name="action" value="sdcoach_bericht_anfordern" /> 1654 <label for="sdcoach-bericht-email"><?php esc_html_e( 'Deine E-Mail-Adresse:', 'pruefbericht-seo-quick-check' ); ?></label><br /> 1655 <input type="email" id="sdcoach-bericht-email" name="sdcoach_bericht_email" value="<?php echo esc_attr( (string) get_option( 'admin_email', '' ) ); ?>" required style="width:320px;margin:4px 8px 4px 0;" /> 1656 <button type="submit" class="button button-primary"><?php esc_html_e( 'Prüfbericht öffnen (neuer Tab)', 'pruefbericht-seo-quick-check' ); ?></button> 1657 </form> 1658 <p class="description"> 1659 <?php esc_html_e( 'Es öffnet sich die Seite des SEO Coach (app.meinseocoach.de). Deine Website-Adresse und diese E-Mail-Adresse sind dort schon eingetragen. Übertragen werden sie erst, wenn du dort auf Prüfen klickst. Danach bekommst du eine Mail, in der du deine Adresse bestätigst, und dann den Bericht. Werbung bekommst du nur, wenn du das ausdrücklich ankreuzt.', 'pruefbericht-seo-quick-check' ); ?> 1660 <a href="https://app.meinseocoach.de/datenschutz" target="_blank" rel="noopener"><?php esc_html_e( 'Datenschutz', 'pruefbericht-seo-quick-check' ); ?></a> 1661 </p> 1662 <?php if ( $bericht_gestartet > 0 ) : ?> 1663 <p class="description"> 1664 <?php 1665 /* translators: %s: date and time when the report page was last opened */ 1666 printf( esc_html__( 'Zuletzt geöffnet am %s. Keine Mail bekommen? Schau im Spam-Ordner nach oder öffne den Prüfbericht noch einmal.', 'pruefbericht-seo-quick-check' ), esc_html( wp_date( 'd.m.Y H:i', $bericht_gestartet ) ) ); 1667 ?> 1668 </p> 1669 <?php endif; ?> 1670 </div> 1671 1672 <!-- Karte 3: Google Search Console --> 1584 1673 <div style="<?php echo esc_attr( $card ); ?>"> 1585 <h2 style="margin-top:0;"><?php esc_html_e( ' 2. Google Search Console verbinden', 'pruefbericht-seo-quick-check' ); ?></h2>1674 <h2 style="margin-top:0;"><?php esc_html_e( '3. Google Search Console verbinden', 'pruefbericht-seo-quick-check' ); ?></h2> 1586 1675 <?php if ( $token || $gsc_datei ) : ?> 1587 1676 <p><?php … … 1645 1734 <?php endif; ?> 1646 1735 </form> 1736 <p class="description" style="margin-top:12px;"> 1737 <?php esc_html_e( 'Kommst du mit der Search Console nicht weiter? Markus vom SEO Coach hilft dir bei der ersten Einrichtung kostenlos und persönlich. Schreib einfach an', 'pruefbericht-seo-quick-check' ); ?> 1738 <a href="mailto:support@meinseocoach.de">support@meinseocoach.de</a> 1739 </p> 1647 1740 </div> 1648 1741 1649 <!-- Karte 3: SEO Coach Verbindung -->1742 <!-- Karte 4: SEO Coach Verbindung --> 1650 1743 <div style="<?php echo esc_attr( $card ); ?>"> 1651 <h2 style="margin-top:0;"><?php esc_html_e( ' 3. Mit SEO Coach verbinden (optional)', 'pruefbericht-seo-quick-check' ); ?></h2>1744 <h2 style="margin-top:0;"><?php esc_html_e( '4. Mit SEO Coach verbinden (optional)', 'pruefbericht-seo-quick-check' ); ?></h2> 1652 1745 <p> 1653 <?php esc_html_e( 'SEO Coach ist ein externer Dienst (meinseocoach.de), der deine Search-Console-Daten analysiert und Optimierungen per Klick zurück in WordPress schreibt. Die Verbindung ist freiwillig: Erst wenn du diesen API-Key dort einträgst, kann der Dienst auf die Inhalte dieser Website zugreifen.', 'pruefbericht-seo-quick-check' ); ?> 1746 <?php esc_html_e( 'Der SEO Coach ist ein externer Dienst (meinseocoach.de). Er liest deine eigenen Search-Console-Daten und zeigt dir, was dieser Check nicht sehen kann:', 'pruefbericht-seo-quick-check' ); ?> 1747 </p> 1748 <ul style="list-style:disc;margin-left:20px;"> 1749 <li><?php esc_html_e( 'wie oft du bei Google gefunden und angeklickt wirst, mit welchen Suchbegriffen und auf welchem Platz', 'pruefbericht-seo-quick-check' ); ?></li> 1750 <li><?php esc_html_e( 'Seiten, die knapp vor der ersten Google-Seite stehen, und Seiten, die Klicks verlieren', 'pruefbericht-seo-quick-check' ); ?></li> 1751 <li><?php esc_html_e( 'jede Woche eine Ranking-Meldung und jeden Monat einen Bericht per E-Mail', 'pruefbericht-seo-quick-check' ); ?></li> 1752 <li><?php esc_html_e( 'neue Titel und Beschreibungen, die er nach deiner Freigabe in WordPress einträgt (ab Starter)', 'pruefbericht-seo-quick-check' ); ?></li> 1753 </ul> 1754 <p> 1755 <strong><?php esc_html_e( 'Kostenlos starten:', 'pruefbericht-seo-quick-check' ); ?></strong> 1756 <?php esc_html_e( '7 Tage alle Starter-Funktionen, danach automatisch im Gratis-Tarif. Keine Kreditkarte, keine automatische kostenpflichtige Verlängerung.', 'pruefbericht-seo-quick-check' ); ?> 1757 </p> 1758 <p> 1759 <a class="button button-primary" href="https://app.meinseocoach.de/register" target="_blank" rel="noopener"><?php esc_html_e( 'Kostenloses Konto erstellen', 'pruefbericht-seo-quick-check' ); ?></a> 1760 <a class="button" href="https://app.meinseocoach.de/demo" target="_blank" rel="noopener" style="margin-left:8px;"><?php esc_html_e( 'Demo mit Beispieldaten ansehen', 'pruefbericht-seo-quick-check' ); ?></a> 1761 </p> 1762 <h3 style="margin:20px 0 4px;"><?php esc_html_e( 'Schon ein Konto? So verbindest du diese Website', 'pruefbericht-seo-quick-check' ); ?></h3> 1763 <p class="description"> 1764 <?php esc_html_e( 'Die Verbindung ist freiwillig: Erst wenn du diesen API-Key im SEO Coach einträgst, kann der Dienst auf die Inhalte dieser Website zugreifen.', 'pruefbericht-seo-quick-check' ); ?> 1654 1765 </p> 1655 1766 <table class="form-table"> … … 1677 1788 </div> 1678 1789 1679 <!-- Karte 4: Anfragen zählen -->1790 <!-- Karte 5: Anfragen zählen --> 1680 1791 <?php 1681 1792 $sdcoach_anfragen_an = sdcoach_anfragen_aktiv(); … … 1688 1799 ?> 1689 1800 <div id="sdcoach-anfragen" style="<?php echo esc_attr( $card ); ?>"> 1690 <h2 style="margin-top:0;"><?php esc_html_e( ' 4. Anfragen zählen (optional)', 'pruefbericht-seo-quick-check' ); ?></h2>1801 <h2 style="margin-top:0;"><?php esc_html_e( '5. Anfragen zählen (optional)', 'pruefbericht-seo-quick-check' ); ?></h2> 1691 1802 <p> 1692 1803 <?php esc_html_e( 'Zählt, wie viele Anfragen deine Website bringt: erfolgreich abgeschickte Formulare und Klicks auf Telefonnummern und E-Mail-Adressen. Ein Klick auf eine Nummer ist noch kein Anruf, aber ein gutes Zeichen.', 'pruefbericht-seo-quick-check' ); ?> -
pruefbericht-seo-quick-check/tags/3.8.0/readme.txt
r3765225 r3773271 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.4 7 Stable tag: 3. 7.07 Stable tag: 3.8.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 39 39 Off by default. Once you switch it on, the plugin counts successful form submissions (Contact Form 7, WPForms, Gravity Forms, Elementor Pro, Fluent Forms, Ninja Forms) and clicks on phone numbers and email addresses on your site. Per day it stores only the type, the address of the published page and the form name you gave the form, as a number. No field contents, no cookies, no IP addresses. Page addresses and form names are stored as they are, so if a page slug or form name contains a person's name, so does the count. Pages that WordPress does not know as published, public pages are counted as "(other page)"; a page that a membership plugin protects on top is not recognised as such. Against abuse, a hash of the visitor's IP address is kept for the current day only, made with a random secret that exists only for that day. Hashes and secret are deleted on the first visit after midnight, at the latest by the daily cleanup, and immediately when you switch counting off or deactivate the plugin. Clicks sent from other websites are ignored. Behind Cloudflare the visitor address sent by Cloudflare is used; for other proxies there is the filter `sdcoach_besucher_adresse`. The counts stay in your WordPress database and are removed after 400 days while the plugin is active. Deleting the plugin removes the counts and the hashes. A click on a phone number is not a call, and the plugin does not pretend it is. 40 40 41 = Optional: detailed report by email = 42 43 If you want more, the settings page offers the free, more detailed report of SEO Coach. It checks your homepage from the outside, including load time, HTTPS and content, explains every finding with instructions and sends the result as a PDF by email. The button opens the SEO Coach report page in a new tab, with your site address and the email address you entered already filled in. Nothing is sent until you start the check on that page yourself. You then get an email to confirm your address first, and after that the report. You only receive marketing emails if you explicitly tick a box for it. 44 41 45 = Optional: connect to SEO Coach = 42 46 43 47 If you want to go further, you can connect your site to **SEO Coach** (https://meinseocoach.de), an external service by a German provider. It reads your own Google Search Console data, turns it into concrete suggestions, and writes titles, meta descriptions, content and schema back into WordPress when you approve them. Rank Math and Yoast are supported. 44 48 45 This connection is **optional and you have to establish it yourself**. The plugin never sends data on its own. Only after you enter the API key shown in the plugin into your SEO Coach account can the service reach this site through the WordPress REST API. Details are under "External Services" below.49 This connection is **optional and you have to establish it yourself**. The plugin never sends data on its own. Only after you enter the API key shown in the plugin into your SEO Coach account can the service use the plugin's endpoints in the WordPress REST API of this site. Details are under "External Services" below. 46 50 47 51 == External Services == … … 49 53 The plugin itself sends no data to external servers. The quick check (also when it runs once a day on its own), the AI crawler check, the llms.txt check and the sitemap check request your own website only. If you switch on inquiry counting, a small script reports clicks on phone and email links to your own website (the WordPress REST API of this site), nowhere else. 50 54 51 Optionally, the site can be connected to the service **SEO Coach** (https://meinseocoach.de). To do that, you enter the API key generated by the plugin into your own SEO Coach account. After that, the service accesses this site through the WordPress REST API in order to 55 Optionally, you can request the detailed report of **SEO Coach** (https://app.meinseocoach.de/pruefbericht). When you click "open report", the plugin opens that page in a new tab and passes your site address (home URL) and the email address you entered in the URL fragment (the part after #, which browsers do not send to the server). The page only fills in its form with them. They are transmitted to SEO Coach only when you start the check on that page yourself, in order to run the check and to email you the report after you confirmed your address. The plugin stores only the time you last opened the report page, not the email address. 56 57 Also optionally, the site can be connected to the service **SEO Coach** (https://meinseocoach.de). To do that, you enter the API key generated by the plugin into your own SEO Coach account. After that, the service accesses this site through the WordPress REST API in order to 52 58 53 59 * read SEO fields (title, meta description, focus keyword) and change them on your instruction, … … 57 63 * read the inquiry counts, if you switched inquiry counting on. 58 64 59 Without that key, entered by you, no data is exchanged.Provider: SEO Coach, https://meinseocoach.de. Privacy policy: https://app.meinseocoach.de/datenschutz. Terms: https://app.meinseocoach.de/agb.65 Without that key, entered by you, the service cannot use the plugin's endpoints and cannot change anything on your site. (The detailed report above only reads your public homepage, like any visitor.) Provider: SEO Coach, https://meinseocoach.de. Privacy policy: https://app.meinseocoach.de/datenschutz. Terms: https://app.meinseocoach.de/agb. 60 66 61 67 == Installation == … … 73 79 = Does the plugin send data to third parties? = 74 80 75 Not on its own. Only after you enter the API key into your SEO Coach account can that service reach your site. See "External Services".81 Not on its own. If you request the detailed report, your site address and email address are sent to SEO Coach only when you start the check on its page yourself. Only after you enter the API key into your SEO Coach account can that service use the plugin's endpoints and make changes you approve. See "External Services". 76 82 77 83 = What does it mean when a crawler is "blocked"? = … … 108 114 109 115 == Changelog == 116 117 = 3.8.0 = 118 * New: request the free, more detailed SEO Coach report by email right from the settings page. The address field is prefilled with the admin email and can be changed. Nothing is sent until you start the check on the report page yourself. 119 * New: the step bar now has four steps: check, detailed report, Google, SEO Coach. 120 * New: after the check, a short note explains what green checkmarks mean and what the homepage check cannot see (clicks and rankings). 121 * Improved: the SEO Coach card explains what the service shows, how the free start works, and links to sign-up and a demo with sample data. 122 * New: free personal help with the first Search Console setup. 110 123 111 124 = 3.7.0 = -
pruefbericht-seo-quick-check/tags/3.8.0/uninstall.php
r3765225 r3773271 58 58 delete_option( 'sdcoach_letzte_pruefung' ); 59 59 delete_option( 'sdcoach_coach_connected_at' ); 60 delete_option( 'sdcoach_bericht_gestartet_at' ); 60 61 delete_option( 'sdcoach_db_version' ); 61 62 delete_option( 'sdcoach_anfragen_aktiv' ); -
pruefbericht-seo-quick-check/trunk/pruefbericht-seo-quick-check.php
r3765225 r3773271 4 4 * Plugin URI: https://meinseocoach.de 5 5 * Description: SEO-Werkzeuge für WordPress: SEO-Quick-Check, KI-Bereitschaft (dürfen GPTBot, ClaudeBot und Co. lesen?), llms.txt erzeugen, Sitemap-Status und Google-Search-Console-Verifikation. Optional verbindbar mit dem SEO Coach (externer Dienst). 6 * Version: 3. 7.06 * Version: 3.8.0 7 7 * Requires at least: 5.8 8 8 * Requires PHP: 7.4 … … 18 18 } 19 19 20 define( 'SDCOACH_VERSION', '3. 7.0' );20 define( 'SDCOACH_VERSION', '3.8.0' ); 21 21 define( 'SDCOACH_MIN_VERSION', '2.1.0' ); // Dashboard erwartet mindestens diese Version 22 22 // Prefix-Konvention: Alle plugineigenen Funktionen, Options, Transients, Post-Meta und … … 738 738 739 739 wp_safe_redirect( add_query_arg( 'sdcoach-checked', '1', admin_url( 'options-general.php?page=pruefbericht-seo-quick-check' ) ) ); 740 exit; 741 } 742 743 // ─── Admin-Post-Handler: Prüfbericht per E-Mail anfordern (seit 3.8.0) ─────── 744 // 745 // Das Plugin verschickt selbst keine Mail. Es öffnet den Prüfbericht des SEO Coach in 746 // einem neuen Tab, Adresse und E-Mail sind dort vorbefüllt. Übertragen wird erst, wenn 747 // der Nutzer dort die Bot-Prüfung löst und auf Prüfen klickt; danach kommt zuerst eine 748 // Bestätigungsmail. Die Werte stehen im Hash, der nie an einen Server geht. 749 750 define( 'SDCOACH_PRUEFBERICHT_URL', 'https://app.meinseocoach.de/pruefbericht' ); 751 752 add_action( 'admin_post_sdcoach_bericht_anfordern', 'sdcoach_handle_bericht_anfordern_action' ); 753 754 function sdcoach_handle_bericht_anfordern_action() { 755 if ( ! current_user_can( 'manage_options' ) ) { 756 wp_die( esc_html__( 'Keine Berechtigung.', 'pruefbericht-seo-quick-check' ) ); 757 } 758 check_admin_referer( 'sdcoach_bericht_anfordern' ); 759 760 $email = isset( $_POST['sdcoach_bericht_email'] ) ? sanitize_email( wp_unslash( $_POST['sdcoach_bericht_email'] ) ) : ''; 761 if ( ! is_email( $email ) ) { 762 wp_safe_redirect( add_query_arg( 'sdcoach-bericht', 'ungueltig', admin_url( 'options-general.php?page=pruefbericht-seo-quick-check' ) ) . '#sdcoach-bericht' ); 763 exit; 764 } 765 766 // Nur der Zeitpunkt, nicht die Adresse: Ob der Nutzer drüben wirklich prüfen ließ, 767 // weiß das Plugin nicht. Deshalb „gestartet“, nie „angefordert“. 768 update_option( 'sdcoach_bericht_gestartet_at', time(), false ); 769 770 $ziel = SDCOACH_PRUEFBERICHT_URL . '#' . http_build_query( 771 [ 772 'url' => home_url( '/' ), 773 'email' => $email, 774 ], 775 '', 776 '&', 777 PHP_QUERY_RFC3986 778 ); 779 // Den fremden Host nur für diese eine Weiterleitung erlauben, nicht für die ganze Website. 780 add_filter( 781 'allowed_redirect_hosts', 782 static function ( $hosts ) { 783 $hosts[] = (string) wp_parse_url( SDCOACH_PRUEFBERICHT_URL, PHP_URL_HOST ); 784 return $hosts; 785 } 786 ); 787 // 303, damit der Browser drüben eine normale Seite lädt und das Formular nicht erneut sendet. 788 wp_safe_redirect( $ziel, 303 ); 740 789 exit; 741 790 } … … 1321 1370 1322 1371 // Schritt-Status: erledigt = Haken, erster offener Schritt = hervorgehoben 1372 $bericht_gestartet = (int) get_option( 'sdcoach_bericht_gestartet_at', 0 ); 1323 1373 $step_done = [ 1324 1374 1 => (bool) get_option( 'sdcoach_quick_check_done_at', 0 ) || ( is_array( $check ) && empty( $check['error'] ) ), 1325 2 => $token !== '' || $gsc_datei !== '', 1326 3 => (bool) get_option( 'sdcoach_coach_connected_at', 0 ), 1375 2 => $bericht_gestartet > 0, 1376 3 => $token !== '' || $gsc_datei !== '', 1377 4 => (bool) get_option( 'sdcoach_coach_connected_at', 0 ), 1327 1378 ]; 1328 $current_step = 4; // 4= alles erledigt1329 foreach ( [ 1, 2, 3 ] as $s ) {1379 $current_step = 5; // 5 = alles erledigt 1380 foreach ( [ 1, 2, 3, 4 ] as $s ) { 1330 1381 if ( ! $step_done[ $s ] ) { 1331 1382 $current_step = $s; … … 1335 1386 $steps = [ 1336 1387 1 => __( 'Schritt 1: Website prüfen', 'pruefbericht-seo-quick-check' ), 1337 2 => __( 'Schritt 2: Google verbinden', 'pruefbericht-seo-quick-check' ), 1338 3 => __( 'Schritt 3: Coach verbinden (optional)', 'pruefbericht-seo-quick-check' ), 1388 2 => $step_done[2] 1389 ? __( 'Schritt 2: Prüfbericht gestartet', 'pruefbericht-seo-quick-check' ) 1390 : __( 'Schritt 2: Prüfbericht per E-Mail', 'pruefbericht-seo-quick-check' ), 1391 3 => __( 'Schritt 3: Google verbinden', 'pruefbericht-seo-quick-check' ), 1392 4 => __( 'Schritt 4: Coach verbinden (optional)', 'pruefbericht-seo-quick-check' ), 1339 1393 ]; 1340 1394 $chip_done = 'background:#e7f7d3;border:1px solid #b5e08a;border-radius:999px;padding:4px 12px;color:#3a5a13;'; … … 1350 1404 <?php if ( $num > 1 ) : ?><span aria-hidden="true">→</span><?php endif; ?> 1351 1405 <?php if ( $step_done[ $num ] ) : ?> 1352 <span style="<?php echo esc_attr( $chip_done ); ?>">✓ <?php echo esc_html( $label ); ?></span> 1406 <?php // Beim Prüfbericht kein Haken: Ob er drüben wirklich angefordert wurde, sieht das Plugin nicht. ?> 1407 <span style="<?php echo esc_attr( $chip_done ); ?>"><?php echo 2 === $num ? '↗' : '✓'; ?> <?php echo esc_html( $label ); ?></span> 1353 1408 <?php elseif ( $num === $current_step ) : ?> 1354 1409 <span style="<?php echo esc_attr( $chip_active ); ?>"><?php echo esc_html( $label ); ?></span> … … 1357 1412 <?php endif; ?> 1358 1413 <?php endforeach; ?> 1359 <?php if ( 4=== $current_step ) : ?>1414 <?php if ( 5 === $current_step ) : ?> 1360 1415 <span style="color:#3a5a13;font-weight:600;">🎉 <?php esc_html_e( 'Alles eingerichtet!', 'pruefbericht-seo-quick-check' ); ?></span> 1361 1416 <?php endif; ?> … … 1369 1424 $sdcoach_sichtbar = isset( $_GET['sdcoach-sichtbar'] ) ? sanitize_key( wp_unslash( $_GET['sdcoach-sichtbar'] ) ) : ''; 1370 1425 $sdcoach_notice_llms = isset( $_GET['sdcoach-llms'] ) ? sanitize_key( wp_unslash( $_GET['sdcoach-llms'] ) ) : ''; 1426 $sdcoach_notice_bericht = isset( $_GET['sdcoach-bericht'] ) ? sanitize_key( wp_unslash( $_GET['sdcoach-bericht'] ) ) : ''; 1371 1427 // phpcs:enable WordPress.Security.NonceVerification.Recommended 1372 1428 ?> … … 1487 1543 $check['gsc_meta'] ? __( 'Google-Verifikations-Tag aktiv', 'pruefbericht-seo-quick-check' ) : __( 'Kein Google-Verifikations-Tag', 'pruefbericht-seo-quick-check' ), 1488 1544 $check['gsc_meta'] ? 'ok' : 'warn', 1489 $check['gsc_meta'] ? '' : __( 'Siehe Abschnitt 2unten: Search Console verbinden.', 'pruefbericht-seo-quick-check' )1545 $check['gsc_meta'] ? '' : __( 'Siehe Abschnitt 3 unten: Search Console verbinden.', 'pruefbericht-seo-quick-check' ) 1490 1546 ); 1491 1547 ?> … … 1569 1625 ?> 1570 1626 </p> 1627 <p class="description"> 1628 <?php esc_html_e( 'Geprüft wurden die technischen Grundlagen deiner Startseite. Ob du bei Google gefunden und angeklickt wirst und auf welchem Platz du stehst, sieht dieser Check nicht. Ein grüner Haken heißt: Die Grundlage stimmt. Er heißt nicht, dass die Website fertig optimiert ist.', 'pruefbericht-seo-quick-check' ); ?> 1629 </p> 1571 1630 <?php elseif ( is_array( $check ) && ! empty( $check['error'] ) ) : ?> 1572 1631 <p><?php esc_html_e( 'Die Startseite konnte nicht abgerufen werden:', 'pruefbericht-seo-quick-check' ); ?> <code><?php echo esc_html( $check['error'] ); ?></code></p> … … 1581 1640 </div> 1582 1641 1583 <!-- Karte 2: Google Search Console --> 1642 <!-- Karte 2: Ausführlicher Prüfbericht per E-Mail (seit 3.8.0) --> 1643 <div id="sdcoach-bericht" style="<?php echo esc_attr( $card ); ?>"> 1644 <h2 style="margin-top:0;"><?php esc_html_e( '2. Ausführlicher Prüfbericht per E-Mail', 'pruefbericht-seo-quick-check' ); ?></h2> 1645 <p> 1646 <?php esc_html_e( 'Der kostenlose Prüfbericht des SEO Coach geht weiter als der Check oben: Er prüft deine Startseite von außen, unter anderem Ladezeit, HTTPS und Inhalt, erklärt jeden Befund mit einer Anleitung und schickt dir das Ergebnis als PDF per E-Mail.', 'pruefbericht-seo-quick-check' ); ?> 1647 </p> 1648 <?php if ( 'ungueltig' === $sdcoach_notice_bericht ) : ?> 1649 <p style="color:#b32d2e;"><?php esc_html_e( 'Das ist keine gültige E-Mail-Adresse. Bitte prüfe die Eingabe.', 'pruefbericht-seo-quick-check' ); ?></p> 1650 <?php endif; ?> 1651 <form method="post" action="<?php echo esc_url( admin_url( 'admin-post.php' ) ); ?>" target="_blank" rel="noopener"> 1652 <?php wp_nonce_field( 'sdcoach_bericht_anfordern' ); ?> 1653 <input type="hidden" name="action" value="sdcoach_bericht_anfordern" /> 1654 <label for="sdcoach-bericht-email"><?php esc_html_e( 'Deine E-Mail-Adresse:', 'pruefbericht-seo-quick-check' ); ?></label><br /> 1655 <input type="email" id="sdcoach-bericht-email" name="sdcoach_bericht_email" value="<?php echo esc_attr( (string) get_option( 'admin_email', '' ) ); ?>" required style="width:320px;margin:4px 8px 4px 0;" /> 1656 <button type="submit" class="button button-primary"><?php esc_html_e( 'Prüfbericht öffnen (neuer Tab)', 'pruefbericht-seo-quick-check' ); ?></button> 1657 </form> 1658 <p class="description"> 1659 <?php esc_html_e( 'Es öffnet sich die Seite des SEO Coach (app.meinseocoach.de). Deine Website-Adresse und diese E-Mail-Adresse sind dort schon eingetragen. Übertragen werden sie erst, wenn du dort auf Prüfen klickst. Danach bekommst du eine Mail, in der du deine Adresse bestätigst, und dann den Bericht. Werbung bekommst du nur, wenn du das ausdrücklich ankreuzt.', 'pruefbericht-seo-quick-check' ); ?> 1660 <a href="https://app.meinseocoach.de/datenschutz" target="_blank" rel="noopener"><?php esc_html_e( 'Datenschutz', 'pruefbericht-seo-quick-check' ); ?></a> 1661 </p> 1662 <?php if ( $bericht_gestartet > 0 ) : ?> 1663 <p class="description"> 1664 <?php 1665 /* translators: %s: date and time when the report page was last opened */ 1666 printf( esc_html__( 'Zuletzt geöffnet am %s. Keine Mail bekommen? Schau im Spam-Ordner nach oder öffne den Prüfbericht noch einmal.', 'pruefbericht-seo-quick-check' ), esc_html( wp_date( 'd.m.Y H:i', $bericht_gestartet ) ) ); 1667 ?> 1668 </p> 1669 <?php endif; ?> 1670 </div> 1671 1672 <!-- Karte 3: Google Search Console --> 1584 1673 <div style="<?php echo esc_attr( $card ); ?>"> 1585 <h2 style="margin-top:0;"><?php esc_html_e( ' 2. Google Search Console verbinden', 'pruefbericht-seo-quick-check' ); ?></h2>1674 <h2 style="margin-top:0;"><?php esc_html_e( '3. Google Search Console verbinden', 'pruefbericht-seo-quick-check' ); ?></h2> 1586 1675 <?php if ( $token || $gsc_datei ) : ?> 1587 1676 <p><?php … … 1645 1734 <?php endif; ?> 1646 1735 </form> 1736 <p class="description" style="margin-top:12px;"> 1737 <?php esc_html_e( 'Kommst du mit der Search Console nicht weiter? Markus vom SEO Coach hilft dir bei der ersten Einrichtung kostenlos und persönlich. Schreib einfach an', 'pruefbericht-seo-quick-check' ); ?> 1738 <a href="mailto:support@meinseocoach.de">support@meinseocoach.de</a> 1739 </p> 1647 1740 </div> 1648 1741 1649 <!-- Karte 3: SEO Coach Verbindung -->1742 <!-- Karte 4: SEO Coach Verbindung --> 1650 1743 <div style="<?php echo esc_attr( $card ); ?>"> 1651 <h2 style="margin-top:0;"><?php esc_html_e( ' 3. Mit SEO Coach verbinden (optional)', 'pruefbericht-seo-quick-check' ); ?></h2>1744 <h2 style="margin-top:0;"><?php esc_html_e( '4. Mit SEO Coach verbinden (optional)', 'pruefbericht-seo-quick-check' ); ?></h2> 1652 1745 <p> 1653 <?php esc_html_e( 'SEO Coach ist ein externer Dienst (meinseocoach.de), der deine Search-Console-Daten analysiert und Optimierungen per Klick zurück in WordPress schreibt. Die Verbindung ist freiwillig: Erst wenn du diesen API-Key dort einträgst, kann der Dienst auf die Inhalte dieser Website zugreifen.', 'pruefbericht-seo-quick-check' ); ?> 1746 <?php esc_html_e( 'Der SEO Coach ist ein externer Dienst (meinseocoach.de). Er liest deine eigenen Search-Console-Daten und zeigt dir, was dieser Check nicht sehen kann:', 'pruefbericht-seo-quick-check' ); ?> 1747 </p> 1748 <ul style="list-style:disc;margin-left:20px;"> 1749 <li><?php esc_html_e( 'wie oft du bei Google gefunden und angeklickt wirst, mit welchen Suchbegriffen und auf welchem Platz', 'pruefbericht-seo-quick-check' ); ?></li> 1750 <li><?php esc_html_e( 'Seiten, die knapp vor der ersten Google-Seite stehen, und Seiten, die Klicks verlieren', 'pruefbericht-seo-quick-check' ); ?></li> 1751 <li><?php esc_html_e( 'jede Woche eine Ranking-Meldung und jeden Monat einen Bericht per E-Mail', 'pruefbericht-seo-quick-check' ); ?></li> 1752 <li><?php esc_html_e( 'neue Titel und Beschreibungen, die er nach deiner Freigabe in WordPress einträgt (ab Starter)', 'pruefbericht-seo-quick-check' ); ?></li> 1753 </ul> 1754 <p> 1755 <strong><?php esc_html_e( 'Kostenlos starten:', 'pruefbericht-seo-quick-check' ); ?></strong> 1756 <?php esc_html_e( '7 Tage alle Starter-Funktionen, danach automatisch im Gratis-Tarif. Keine Kreditkarte, keine automatische kostenpflichtige Verlängerung.', 'pruefbericht-seo-quick-check' ); ?> 1757 </p> 1758 <p> 1759 <a class="button button-primary" href="https://app.meinseocoach.de/register" target="_blank" rel="noopener"><?php esc_html_e( 'Kostenloses Konto erstellen', 'pruefbericht-seo-quick-check' ); ?></a> 1760 <a class="button" href="https://app.meinseocoach.de/demo" target="_blank" rel="noopener" style="margin-left:8px;"><?php esc_html_e( 'Demo mit Beispieldaten ansehen', 'pruefbericht-seo-quick-check' ); ?></a> 1761 </p> 1762 <h3 style="margin:20px 0 4px;"><?php esc_html_e( 'Schon ein Konto? So verbindest du diese Website', 'pruefbericht-seo-quick-check' ); ?></h3> 1763 <p class="description"> 1764 <?php esc_html_e( 'Die Verbindung ist freiwillig: Erst wenn du diesen API-Key im SEO Coach einträgst, kann der Dienst auf die Inhalte dieser Website zugreifen.', 'pruefbericht-seo-quick-check' ); ?> 1654 1765 </p> 1655 1766 <table class="form-table"> … … 1677 1788 </div> 1678 1789 1679 <!-- Karte 4: Anfragen zählen -->1790 <!-- Karte 5: Anfragen zählen --> 1680 1791 <?php 1681 1792 $sdcoach_anfragen_an = sdcoach_anfragen_aktiv(); … … 1688 1799 ?> 1689 1800 <div id="sdcoach-anfragen" style="<?php echo esc_attr( $card ); ?>"> 1690 <h2 style="margin-top:0;"><?php esc_html_e( ' 4. Anfragen zählen (optional)', 'pruefbericht-seo-quick-check' ); ?></h2>1801 <h2 style="margin-top:0;"><?php esc_html_e( '5. Anfragen zählen (optional)', 'pruefbericht-seo-quick-check' ); ?></h2> 1691 1802 <p> 1692 1803 <?php esc_html_e( 'Zählt, wie viele Anfragen deine Website bringt: erfolgreich abgeschickte Formulare und Klicks auf Telefonnummern und E-Mail-Adressen. Ein Klick auf eine Nummer ist noch kein Anruf, aber ein gutes Zeichen.', 'pruefbericht-seo-quick-check' ); ?> -
pruefbericht-seo-quick-check/trunk/readme.txt
r3765225 r3773271 5 5 Tested up to: 7.1 6 6 Requires PHP: 7.4 7 Stable tag: 3. 7.07 Stable tag: 3.8.0 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 39 39 Off by default. Once you switch it on, the plugin counts successful form submissions (Contact Form 7, WPForms, Gravity Forms, Elementor Pro, Fluent Forms, Ninja Forms) and clicks on phone numbers and email addresses on your site. Per day it stores only the type, the address of the published page and the form name you gave the form, as a number. No field contents, no cookies, no IP addresses. Page addresses and form names are stored as they are, so if a page slug or form name contains a person's name, so does the count. Pages that WordPress does not know as published, public pages are counted as "(other page)"; a page that a membership plugin protects on top is not recognised as such. Against abuse, a hash of the visitor's IP address is kept for the current day only, made with a random secret that exists only for that day. Hashes and secret are deleted on the first visit after midnight, at the latest by the daily cleanup, and immediately when you switch counting off or deactivate the plugin. Clicks sent from other websites are ignored. Behind Cloudflare the visitor address sent by Cloudflare is used; for other proxies there is the filter `sdcoach_besucher_adresse`. The counts stay in your WordPress database and are removed after 400 days while the plugin is active. Deleting the plugin removes the counts and the hashes. A click on a phone number is not a call, and the plugin does not pretend it is. 40 40 41 = Optional: detailed report by email = 42 43 If you want more, the settings page offers the free, more detailed report of SEO Coach. It checks your homepage from the outside, including load time, HTTPS and content, explains every finding with instructions and sends the result as a PDF by email. The button opens the SEO Coach report page in a new tab, with your site address and the email address you entered already filled in. Nothing is sent until you start the check on that page yourself. You then get an email to confirm your address first, and after that the report. You only receive marketing emails if you explicitly tick a box for it. 44 41 45 = Optional: connect to SEO Coach = 42 46 43 47 If you want to go further, you can connect your site to **SEO Coach** (https://meinseocoach.de), an external service by a German provider. It reads your own Google Search Console data, turns it into concrete suggestions, and writes titles, meta descriptions, content and schema back into WordPress when you approve them. Rank Math and Yoast are supported. 44 48 45 This connection is **optional and you have to establish it yourself**. The plugin never sends data on its own. Only after you enter the API key shown in the plugin into your SEO Coach account can the service reach this site through the WordPress REST API. Details are under "External Services" below.49 This connection is **optional and you have to establish it yourself**. The plugin never sends data on its own. Only after you enter the API key shown in the plugin into your SEO Coach account can the service use the plugin's endpoints in the WordPress REST API of this site. Details are under "External Services" below. 46 50 47 51 == External Services == … … 49 53 The plugin itself sends no data to external servers. The quick check (also when it runs once a day on its own), the AI crawler check, the llms.txt check and the sitemap check request your own website only. If you switch on inquiry counting, a small script reports clicks on phone and email links to your own website (the WordPress REST API of this site), nowhere else. 50 54 51 Optionally, the site can be connected to the service **SEO Coach** (https://meinseocoach.de). To do that, you enter the API key generated by the plugin into your own SEO Coach account. After that, the service accesses this site through the WordPress REST API in order to 55 Optionally, you can request the detailed report of **SEO Coach** (https://app.meinseocoach.de/pruefbericht). When you click "open report", the plugin opens that page in a new tab and passes your site address (home URL) and the email address you entered in the URL fragment (the part after #, which browsers do not send to the server). The page only fills in its form with them. They are transmitted to SEO Coach only when you start the check on that page yourself, in order to run the check and to email you the report after you confirmed your address. The plugin stores only the time you last opened the report page, not the email address. 56 57 Also optionally, the site can be connected to the service **SEO Coach** (https://meinseocoach.de). To do that, you enter the API key generated by the plugin into your own SEO Coach account. After that, the service accesses this site through the WordPress REST API in order to 52 58 53 59 * read SEO fields (title, meta description, focus keyword) and change them on your instruction, … … 57 63 * read the inquiry counts, if you switched inquiry counting on. 58 64 59 Without that key, entered by you, no data is exchanged.Provider: SEO Coach, https://meinseocoach.de. Privacy policy: https://app.meinseocoach.de/datenschutz. Terms: https://app.meinseocoach.de/agb.65 Without that key, entered by you, the service cannot use the plugin's endpoints and cannot change anything on your site. (The detailed report above only reads your public homepage, like any visitor.) Provider: SEO Coach, https://meinseocoach.de. Privacy policy: https://app.meinseocoach.de/datenschutz. Terms: https://app.meinseocoach.de/agb. 60 66 61 67 == Installation == … … 73 79 = Does the plugin send data to third parties? = 74 80 75 Not on its own. Only after you enter the API key into your SEO Coach account can that service reach your site. See "External Services".81 Not on its own. If you request the detailed report, your site address and email address are sent to SEO Coach only when you start the check on its page yourself. Only after you enter the API key into your SEO Coach account can that service use the plugin's endpoints and make changes you approve. See "External Services". 76 82 77 83 = What does it mean when a crawler is "blocked"? = … … 108 114 109 115 == Changelog == 116 117 = 3.8.0 = 118 * New: request the free, more detailed SEO Coach report by email right from the settings page. The address field is prefilled with the admin email and can be changed. Nothing is sent until you start the check on the report page yourself. 119 * New: the step bar now has four steps: check, detailed report, Google, SEO Coach. 120 * New: after the check, a short note explains what green checkmarks mean and what the homepage check cannot see (clicks and rankings). 121 * Improved: the SEO Coach card explains what the service shows, how the free start works, and links to sign-up and a demo with sample data. 122 * New: free personal help with the first Search Console setup. 110 123 111 124 = 3.7.0 = -
pruefbericht-seo-quick-check/trunk/uninstall.php
r3765225 r3773271 58 58 delete_option( 'sdcoach_letzte_pruefung' ); 59 59 delete_option( 'sdcoach_coach_connected_at' ); 60 delete_option( 'sdcoach_bericht_gestartet_at' ); 60 61 delete_option( 'sdcoach_db_version' ); 61 62 delete_option( 'sdcoach_anfragen_aktiv' );
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)