SEOPress - Version 3.8.6

Version Description

  • NEW Elementor Breadcrumbs widget (PRO)
  • NEW Set a primary category for WooCommerce products (SEO metabox, Advanced tab)
  • NEW 'seopress_sitemaps_external_link' hook to add external sitemaps URL to index sitemaps (https://www.seopress.org/support/hooks/add-external-urls-to-xml-index-sitemaps/)
  • NEW 'seopress_sitemaps_news_keywords' hook to add keywords to Google News sitemap (https://www.seopress.org/support/hooks/add-target-keywords-to-google-news-xml-sitemaps/)
  • NEW Add post type column in broken link checker
  • NEW Brazilian Portuguese language (Free and PRO)
  • INFO Add images to Google News Sitemap (PRO)
  • INFO Remove shop page option in breadcrumbs is back
  • INFO Improve "Test redirection" link for Redirections
  • INFO Improve WPML compatibility for redirects
  • INFO i18n Google Analytics (props to @lriaudel)
  • INFO Improve security (props to @eringerm)
  • INFO Improve compatibility with Query Monitor (props to @sabrinazeidan)
  • INFO Remove Jquery dependency from Google Analytics tracking
  • FIX Conflict with GiveWP
  • FIX Target keyword with special characters
  • FIX Primary category for posts
  • FIX Improved saving of content analysis
  • FIX Flush permalinks button from Sitemap settings page
  • FIX Duplicate query with 404/301 feature enabled
  • FIX Alternative text check for content analysis
  • FIX Warning illegal offset when adding a new post without content
  • FIX WordPress error in Google Preview
  • FIX JS Warning if no social image found from post editing
  • FIX Remove /category/ option after adding new category to avoid manual flushing
  • FIX Notice: Undefined variable: seopress_get_ua (props to @wpchannel)
  • FIX Remove canonical / social meta tags on 404 pages (props to @bartekduls)
  • FIX Default currency for automatic product schema is now based on WC / EDD currency settings
Download this release

Release Info

Developer rainbowgeek
Plugin Icon 128x128 SEOPress
Version 3.8.6
Comparing to
See all releases

Code changes from version 3.8.5.1 to 3.8.6

assets/css/seopress.css CHANGED
@@ -45,6 +45,7 @@
45
  display: inline-block;
46
  cursor: help;
47
  vertical-align: bottom;
 
48
  }
49
 
50
  .sp-tooltip .dashicons {
45
  display: inline-block;
46
  cursor: help;
47
  vertical-align: bottom;
48
+ text-align: left;
49
  }
50
 
51
  .sp-tooltip .dashicons {
assets/css/seopress.min.css CHANGED
@@ -1 +1 @@
1
- #adminmenu div.wp-menu-image.dashicons-admin-seopress::before,#seopress-header #seopress-admin h1::before{content:"\e800";font-family:seopress!important;font-weight:700;font-size:12px;line-height:20px}#seopress-header #seopress-admin h1::before,.seopress-page-list .seopress-feature h3,.seopress-styles .seopress-option h1{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}@font-face{font-family:seopress;src:url(../fonts/seopress.eot?81521271);src:url(../fonts/seopress.eot?81521271#iefix) format('embedded-opentype'),url(../fonts/seopress.woff?81521271) format('woff2'),url(../fonts/seopress.woff?81521271) format('woff'),url(../fonts/seopress.ttf?81521271) format('truetype'),url(../fonts/seopress.svg?81521271#seopress) format('svg');font-weight:400;font-style:normal}[class*=" icon-seopress"],[class^=icon-seopress-]{font-family:seopress!important;font-size:14px!important;line-height:24px!important}#tab_seopress_titles_archives .form-table th:empty,#tab_seopress_titles_single .form-table th:empty,#tab_seopress_titles_tax .form-table th:empty{display:none}.icon-seopress-seopress:before{content:"\e800"}.sp-tooltip{position:relative;margin-left:5px;display:inline-block;cursor:help;vertical-align:bottom}.sp-tooltip .dashicons{color:#666}.sp-tooltip .sp-tooltiptext{visibility:hidden;position:absolute;z-index:999999999;width:300px;right:-303px;padding:20px;top:25px;font-weight:400;box-shadow:0 3px 30px rgba(25,30,35,.1);border:1px solid #e2e4e7;background:#fff;word-break:break-word}.sp-tooltip .sp-tooltiptext::before{border:8px solid #e2e4e7;top:-8px}.sp-tooltip .sp-tooltiptext::after{border:8px solid #fff;top:-6px}.sp-tooltip .sp-tooltiptext::after,.sp-tooltip .sp-tooltiptext::before{border-bottom-style:solid;border-left-color:transparent;border-right-color:transparent;border-top:none;margin-left:-10px;content:"";position:absolute;height:0;width:0;line-height:0;left:30px}.sp-tooltip:hover .sp-tooltiptext{visibility:visible}.sp-tooltip .sp-tooltip-headings{font-size:18px;font-weight:600;margin-bottom:20px;display:block}.sp-tooltip .sp-tooltip-desc{margin-bottom:20px;display:block;border-bottom:1px solid #e2e4e7;padding-bottom:20px;font-size:13px}.sp-tooltip .sp-tooltip-code{font-family:Menlo,Monaco,Andale Mono,Courier New,monospace;display:block;word-break:break-all;color:#42b72a;font-size:11px}.analysis-score .sp-tooltip{vertical-align:middle;font-size:.75em}#seopress_content_analysis a{color:#0073aa}#seopress_content_analysis .wrap-seopress-analysis{display:inline-block;width:100%}#seopress_content_analysis .col-left{width:calc(50% - 30px);float:left;margin-right:30px}#seopress_content_analysis .col-right{float:right;width:50%}#seopress_content_analysis #seopress_suggestions{display:inline-block;width:100%;margin:0;height:auto;padding:20px 0}#seopress_content_analysis #seopress_suggestions li{list-style:none;margin:5px;display:inline-block}#seopress_content_analysis .analysis-score{clear:both;border-top:1px solid #e2e4e7;display:flex;justify-content:space-between;align-items:center}.column-seopress_score .analysis-score{display:flex;align-content:center}#seopress_content_analysis .analysis-score p,.column-seopress_score .analysis-score p{font-weight:700;font-size:1.2em}#seopress_content_analysis .analysis-score svg,.column-seopress_score .analysis-score svg{display:inline-block;height:30px;width:30px;margin:0;border-radius:100%;position:relative;font-weight:600;shape-rendering:geometricprecision;font-size:.5rem;vertical-align:middle;margin-right:15px}.column-seopress_score .analysis-score p,.column-seopress_score .analysis-score svg{margin:0}@keyframes loadingPulse{0%{stroke:#adc5d2}50%{stroke:#00a0d2}100%{stroke:#adc5d2}}#seopress_content_analysis .analysis-score .loading #bar{stroke-dashoffset:0!important;stroke:#adc5d2!important;animation:loadingPulse 3s infinite ease-in-out}#seopress_content_analysis .analysis-score .good #bar,.column-seopress_score .analysis-score #bar.good{stroke:#46b450}#seopress_content_analysis .analysis-score .notgood #bar,.column-seopress_score .analysis-score #bar.notgood{stroke-dashoffset:565;stroke:#ffb900}#seopress_content_analysis .analysis-score svg circle,.column-seopress_score .analysis-score svg circle{stroke-dashoffset:0;transition:stroke-dashoffset 1s linear;stroke:#ccc;stroke-width:2em}#seopress_content_analysis .gr-analysis{clear:both}#seopress_content_analysis .gr-analysis-title{border-top:1px solid #e2e4e7;position:relative}#seopress_content_analysis .gr-analysis-title .impact{position:absolute;left:10px;top:calc(50% - 5px);width:10px;height:10px;border-radius:50px;padding:0;margin:0;border:1px solid #fff}#seopress_content_analysis .gr-analysis .impact.good{background:#46b450;box-shadow:0 0 5px #46b450}#seopress_content_analysis .gr-analysis .impact.low{background:#ffde24;box-shadow:0 0 5px #ffde24}#seopress_content_analysis .gr-analysis .impact.medium{background:#e39f48;box-shadow:0 0 5px #e39f48}#seopress_content_analysis .gr-analysis .impact.high{background:#e25950;box-shadow:0 0 5px #e25950}#seopress_content_analysis .gr-analysis-content .impact.high{background:#e25950;box-shadow:none;color:#fff;padding:2px 4px;margin-left:5px;border-radius:4px;font-weight:700}#seopress_content_analysis .gr-analysis-title button{background:#fff;border:0;cursor:pointer;display:block;margin:0;position:relative;text-align:left;width:100%;padding:15px 30px;align-items:center;transition:all .3s linear}#seopress_content_analysis .gr-analysis-title button:hover{background:#f3f4f5}#seopress_content_analysis .gr-analysis-title button:focus{color:#191e23;border:none;box-shadow:none;outline-offset:-2px;outline:1px dotted #555d66}#seopress_content_analysis .gr-analysis-title button .sp-arrow::after{content:"\f343";font-family:Dashicons;position:absolute;right:10px;top:calc(50% - 7px)}#seopress_content_analysis .gr-analysis-title button.open .sp-arrow::after{content:"\f347"}#seopress_content_analysis .gr-analysis-content{padding:0 1rem .5rem 1rem;display:none;width:100%;border-top:1px solid #e2e4e7;box-sizing:border-box}#seopress_content_analysis h3{margin:0;font-size:1em}#seopress_content_analysis h4{border-bottom:1px solid #e2e4e7;padding-bottom:.5rem;text-transform:uppercase;font-size:.85em;position:-webkit-sticky;position:sticky;top:0;background:#fff}#seopress_content_analysis .wrap-analysis-img ul{display:flex;flex-wrap:wrap}#seopress_content_analysis .wrap-analysis-img ul li{padding:0;text-align:left;cursor:default}#seopress_content_analysis .wrap-analysis-img h4{border-bottom:1px solid #ddd;padding-bottom:10px}#seopress_content_analysis .wrap-analysis-img ul li img{max-width:150px;max-height:150px;object-fit:cover;border:1px solid #f3f4f5;cursor:default;padding:1px}#seopress_cpt .notice{padding:10px 14px}#seopress-analysis-tabs .dashicons,#seopress_cpt .dashicons{vertical-align:middle}#seopress-analysis-tabs{clear:both}#seopress_cpt .inside{margin:0;padding:0}#seopress_cpt .ui-tabs .ui-tabs-nav{display:inline-block;min-height:26px;position:relative;width:100%;z-index:10;margin:0;border-radius:0;padding:0;background:#f3f4f5;border:none}#seopress_cpt .ui-helper-clearfix:after{content:none}.seopress_page_seopress-titles #seopress-tabs .form-table td,.seopress_page_seopress-titles #seopress_content_analysis .form-table td{padding:0}#seopress_cpt .ui-tabs .ui-tabs-panel{background:#fff;border-radius:0;display:inline-block;padding:1em 1.4em;width:100%;box-sizing:border-box}#seopress_content_analysis .dashicons-info,#seopress_cpt .ui-tabs .ui-tabs-panel .dashicons-info,#seopress_pro_cpt .dashicons-info{font-size:16px;vertical-align:middle;height:16px;width:16px}#seopress_cpt .ui-tabs .ui-tabs-nav li,#seopress_cpt .ui-tabs-anchor{cursor:pointer!important}#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-tabs-active{position:relative;z-index:60;cursor:pointer;border-radius:0;border-bottom:3px solid #0085ba}#seopress_content_analysis label,#seopress_cpt #tabs-1 label,#seopress_cpt #tabs-2 label[for=seopress_robots_breadcrumbs_meta],#seopress_cpt #tabs-2 label[for=seopress_robots_canonical_meta],#seopress_cpt #tabs-2 label[for=seopress_robots_primary_cat_meta],#seopress_cpt #tabs-3 label,#seopress_cpt #tabs-4 label,#seopress_cpt #tabs-5 label,#seopress_cpt #tabs-6 label,#seopress_cpt .subsection-title,#seopress_pro_cpt label{display:block;margin:20px 0 5px;font-weight:700}#seopress_cpt .wp-color-result{margin:0}#seopress_content_analysis input[type=text],#seopress_cpt #tabs-1 input,#seopress_cpt #tabs-2 input[type=text],#seopress_cpt #tabs-3 input[type=text],#seopress_cpt #tabs-3 textarea,#seopress_cpt #tabs-4 input[type=text],#seopress_cpt #tabs-5 input[type=text],#seopress_cpt #tabs-6 input[type=text],#seopress_cpt #tabs-6 textarea{width:100%;display:inline-block}#seopress_cpt #tabs-1 input{width:100%}#seopress_cpt #tabs-6 input[type=number]{width:30%;min-width:200px}#seopress_cpt #tabs-6 #wrap-videos .video:first-child .remove-video{display:none}#seopress_cpt select{width:300px}#seopress_cpt #tabs-4 select{width:250px;display:inline}#seopress_cpt #tabs-4 #seopress_redirections_value_meta{width:calc(100% - 258px);float:right}#seopress_cpt #tabs-6{padding:0}#seopress_cpt #tabs-6 #wrap-videos .video .accordion-section-content,#seopress_cpt #tabs-6>p{padding:0 1.4em}#seopress_cpt #tabs-6 #wrap-videos .video .accordion-section-content{padding:0 1.4em 1em}#seopress_cpt #tabs-6 #wrap-videos .video{border-top:1px solid #eee}#seopress_cpt #tabs-6 #wrap-videos .video .accordion-section-title{border-left:none;border-right:none;font-size:1em;padding:1em 1.4em}#seopress_cpt #tabs-6 #wrap-videos .video:last-child .accordion-section-content,#seopress_cpt #tabs-6 #wrap-videos .video:last-child .accordion-section-title{border-bottom:1px solid #eee}#seopress_cpt #tabs-6 #wrap-videos .video .inside{padding:0}#seopress_cpt #tabs-4 #seopress_redirections_enabled,#seopress_cpt #tabs-5 #seopress_news_disabled,#seopress_cpt #tabs-5 #seopress_news_standout,#seopress_cpt #tabs-6 #seopress_video_disabled,#seopress_cpt #tabs-6 .family-friendly label,#seopress_cpt #tabs-6 .internal_video label{font-weight:400}#seopress_cpt #tabs-6 #wrap-videos .video:nth-child(odd){background:#fdfdfd}#seopress_content_analysis .advise,#seopress_cpt .advise,#seopress_pro_cpt .advise,.seopress-option .advise{margin:5px;display:block;color:red;font-style:italic}#seopress_cpt #tabs-6 #wrap-videos .video .advise{color:#555}#seopress_content_analysis .mandatory,#seopress_cpt .mandatory{color:#c00}#seopress_cpt .box-left{float:left;width:49%;margin-right:1%}#seopress_cpt .box-right{float:left;width:49%;margin-left:1%}#seopress_cpt #tabs-3 .box-left{width:44%}#seopress_cpt #tabs-3 .box-right{width:54%}@media only screen and (max-width:1200px){#seopress_cpt .box-left,#seopress_cpt .box-right{float:none;width:100%;margin:0}}@media only screen and (max-width:1500px){#seopress_cpt #tabs-3 .box-left,#seopress_cpt #tabs-3 .box-right{float:none;width:100%;margin:0}}#edittag #seopress_cpt #tabs-3 .box-left,#edittag #seopress_cpt #tabs-3 .box-right{float:none;width:100%;margin:0}#seopress-tabs .seopress_media_upload,#seopress_pro_cpt .seopress_media_upload{margin-top:.5rem}#seopress_cpt .google-snippet-preview{font-family:arial,sans-serif;word-break:break-all}#seopress_cpt .google-snippet-preview.mobile-preview .wrap-snippet{margin:0 0 10px 0;box-shadow:0 1px 6px rgba(32,33,36,.28);border-radius:8px;padding:12px 16px}#seopress_cpt .google-snippet-preview>p{word-break:normal}#seopress_cpt .google-snippet-preview .snippet-title,#seopress_cpt .google-snippet-preview .snippet-title-custom,#seopress_cpt .google-snippet-preview .snippet-title-default{color:#1a0dab;font-size:18px;font-weight:400;line-height:21.6px}#seopress_cpt .google-snippet-preview.mobile-preview .snippet-title,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-title-custom,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-title-default{font-size:16px;line-height:20px;margin-bottom:12px}#seopress_cpt .google-snippet-preview .snippet-permalink{color:#006621;font-size:14px;font-style:normal;font-weight:400;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#seopress_cpt .google-snippet-preview .wrap-snippet .wrap-m-icon-permalink,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-permalink{display:none}#seopress_cpt .google-snippet-preview.mobile-preview .wrap-m-icon-permalink{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:12px;display:flex}#seopress_cpt .google-snippet-preview.mobile-preview .wrap-m-icon-permalink .snippet-permalink{display:block;color:#3c4043;font-size:12px}#seopress_cpt .google-snippet-preview.mobile-preview .snippet-favicon{margin-right:12px;vertical-align:middle}#seopress_cpt .google-snippet-preview.mobile-preview .snippet-favicon img{width:16px;height:16px;max-width:inherit}#seopress_cpt .google-snippet-preview.mobile-preview .wrap-snippet .snippet-permalink:first-child{color:#3c4043;white-space:nowrap;font-size:12px;display:block}#seopress_cpt .google-snippet-preview .snippet-description,#seopress_cpt .google-snippet-preview .snippet-description-custom,#seopress_cpt .google-snippet-preview .snippet-description-default{color:#545454;font-size:14px;font-weight:400;line-height:18.2px;display:inline}#seopress_cpt .google-snippet-preview.mobile-preview .snippet-description,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-description-custom,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-description-default{color:#3c4043;font-size:14px;line-height:20px}#seopress_cpt .google-snippet-preview .snippet-date{color:grey;display:inline}#seopress_cpt .facebook-snippet-box{color:#4b4f56;font-size:14px;width:524px}#seopress_cpt .facebook-snippet-box .notice,#seopress_cpt .twitter-snippet-box .notice{padding:10px 14px;margin:0 0 10px 0;box-sizing:border-box;width:100%}#seopress_cpt .facebook-snippet-box .notice span,#seopress_cpt .twitter-snippet-box .notice span{font-weight:700}#seopress_cpt .snippet-meta{display:flex;overflow:hidden;max-height:12px}#seopress_cpt .fb-by,#seopress_cpt .snippet-fb-site-name,#seopress_cpt .snippet-fb-url{color:#606770;font-size:12px;white-space:normal;line-height:11px;text-transform:uppercase;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis}#seopress_cpt .fb-sep{padding-left:5px;padding-right:5px;color:#606770;line-height:11px;font-size:12px}#seopress_cpt .facebook-snippet-box .facebook-snippet-text{border:1px solid #dadde1;background-color:#f2f3f5;padding:10px 12px}#seopress_cpt .facebook-snippet-box .title-desc{max-height:46px;overflow:hidden}#seopress_cpt .facebook-snippet-box .snippet-fb-title,#seopress_cpt .facebook-snippet-box .snippet-fb-title-custom,#seopress_cpt .facebook-snippet-box .snippet-fb-title-default{font-size:16px;line-height:20px;margin:3px 0 0;padding-top:2px;color:#1d2129;font-weight:700;overflow:hidden;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis;white-space:normal;word-break:break-word;max-height:22px}#seopress_cpt .facebook-snippet-box .snippet-fb-description,#seopress_cpt .facebook-snippet-box .snippet-fb-description-custom,#seopress_cpt .facebook-snippet-box .snippet-fb-description-default{color:#606770;font-size:14px;line-height:20px;word-break:break-word;font-family:Helvetica,Arial,sans-serif;max-height:80px;overflow:hidden;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis;white-space:normal;width:100%}#seopress_cpt .facebook-snippet-box img{display:block;height:274px;width:524px;object-fit:cover;background-color:#edeff0;text-align:center;border-bottom:none}#seopress_cpt .twitter-snippet-box{color:#4b4f56;font-size:14px;width:436px}#seopress_cpt .snippet-twitter-url{color:#8899a6;font-size:14px;white-space:normal;line-height:11px;text-transform:uppercase;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis}#seopress_cpt .twitter-snippet-box .twitter-snippet-text{border:1px solid #dadde1;background-color:#fff;padding:10px 12px;border-radius:0 0 10px 10px}#seopress_cpt .twitter-snippet-box .title-desc{max-height:46px;overflow:hidden}#seopress_cpt .twitter-snippet-box .snippet-twitter-img,#seopress_cpt .twitter-snippet-box .snippet-twitter-img-custom,#seopress_cpt .twitter-snippet-box .snippet-twitter-img-default{border-radius:10px 10px 0 0;overflow:hidden}#seopress_cpt .twitter-snippet-box .snippet-twitter-title,#seopress_cpt .twitter-snippet-box .snippet-twitter-title-custom,#seopress_cpt .twitter-snippet-box .snippet-twitter-title-default{font-size:1em;line-height:20px;margin-bottom:5px;max-height:1.3em;color:#000;font-weight:700;overflow:hidden;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis;white-space:normal;word-break:break-word}#seopress_cpt .twitter-snippet-box .snippet-twitter-description,#seopress_cpt .twitter-snippet-box .snippet-twitter-description-custom,#seopress_cpt .twitter-snippet-box .snippet-twitter-description-default{color:#000;font-size:14px;line-height:20px;word-break:break-word;font-family:Helvetica,Arial,sans-serif;max-height:80px;overflow:hidden;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis;white-space:normal;width:100%}#seopress_cpt .twitter-snippet-box img{display:block;height:200px;width:436px;object-fit:cover;background-color:#edeff0;text-align:center;border-bottom:none}#seopress_cpt .wrap-seopress-counters,#seopress_pro_cpt .wrap-seopress-counters{text-align:right;background:#e9ecef;padding:2px 5px;display:flex;font-size:12px;justify-content:flex-end;border-radius:0 0 .25rem .25rem}#seopress_cpt .sp-progress,#seopress_pro_cpt .sp-progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem .25rem 0 0}#seopress_cpt .sp-progress-bar,#seopress_pro_cpt .sp-progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#0085ba;transition:width .6s ease}#seopress_cpt #seopress_titles_desc_counters,#seopress_cpt #seopress_titles_title_counters,#seopress_pro_cpt #seopress_rich_snippets_articles_counters,#seopress_pro_cpt #seopress_rich_snippets_courses_counters{display:inline;margin-right:5px}#seopress_cpt #seopress_titles_desc_counters_val,#seopress_cpt #seopress_titles_title_counters_val,#seopress_pro_cpt #seopress_rich_snippets_articles_counters_val,#seopress_pro_cpt #seopress_rich_snippets_courses_counters_val{display:inline;font-weight:700}#term-seopress #seopress_cpt{width:95%}.fixed .column-seopress_ps,.fixed .column-seopress_score,.fixed .column-seopress_w3c,.fixed .column-seopress_words{width:6%}.fixed .column-seopress_nofollow,.fixed .column-seopress_noindex{width:8%}@media only screen and (max-width:1200px){.fixed .column-seopress_nofollow,.fixed .column-seopress_noindex,.fixed .column-seopress_ps,.fixed .column-seopress_score,.fixed .column-seopress_w3c,.fixed .column-seopress_words{width:10%}}#seopress_cpt .ui-tabs{position:relative;padding:0;border:none;font-family:inherit;font-size:inherit;display:inline-block;width:100%}#seopress_cpt .ui-tabs .ui-tabs-nav li{list-style:none;display:inline-block;position:relative;top:2px;padding:0 5px;white-space:nowrap;margin:0;border:none;background:0 0}#seopress_cpt .ui-tabs .ui-tabs-nav li a{display:inline-block;padding:5px 10px}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-nav li a,#seopress_cpt .ui-tabs-vertical .ui-tabs-nav li a{display:block}#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:2px;padding-bottom:1px}#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-state-disabled a,#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-tabs-active a,#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-tabs-loading a{color:#191e23;font-weight:700}#seopress_cpt .ui-tabs .ui-tabs-nav li a,#seopress_cpt .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;color:#191e23;text-decoration:none;height:40px;line-height:40px}#seopress_cpt .ui-tabs-vertical{width:55em}#seopress_cpt .ui-tabs-vertical .ui-tabs-nav{padding:.2em .1em .2em .2em;float:left;width:12em}#seopress_cpt .ui-tabs-vertical .ui-tabs-nav li{clear:left;width:100%;border-bottom-width:1px!important;border-right-width:0!important;margin:0 -1px .2em 0}#seopress_cpt .ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active{padding-bottom:0;padding-right:.1em;border-right-width:1px}#seopress_cpt .ui-tabs-vertical .ui-tabs-panel{padding:1em;float:right;width:40em}#seopress_cpt .ui-tabs .ui-tabs-nav li a .dashicons{margin-right:2px}#tab-panel-seopress_titles_help_tab li span{font-weight:700;margin-right:10px}#seopress_content_analysis .dashicons-no-alt,#seopress_content_analysis .dashicons-yes,#seopress_pro_cpt .dashicons-no-alt,#seopress_pro_cpt .dashicons-yes{color:#fff;background:#12bd10;border-radius:50px;margin-right:10px}#seopress_content_analysis .dashicons-no-alt,#seopress_pro_cpt .dashicons-no-alt{background:#e25950}body.seopress-styles{background:#f8fafd}#seopress-admin-tabs.ui-tabs{position:relative;padding:.2em;border:none;font-family:inherit;font-size:inherit}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:-1px .2em 0 0;padding:0;white-space:nowrap;border:none;background:0 0}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li a{float:left;padding:.38em 1em .75rem;outline:0;border-bottom:2px solid #fff}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li.ui-state-disabled a,#seopress-admin-tabs.ui-tabs .ui-tabs-nav li.ui-tabs-active a,#seopress-admin-tabs.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text;border-bottom:2px solid #23282d;color:#23282d}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li a,#seopress-admin-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;color:#0073aa;text-decoration:none}#seopress-admin-tabs.ui-tabs-vertical{width:55em}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-nav{padding:.2em .1em .2em .2em;float:left;width:12em}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-nav li{clear:left;width:100%;border-bottom-width:1px!important;border-right-width:0!important;margin:0 -1px .2em 0}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active{padding-bottom:0;padding-right:.1em;border-right-width:1px}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-panel{padding:1em;float:right;width:40em}.seopress-styles .seopress-option{margin:10px auto 0;max-width:90%;padding:1rem;background:#fff;box-shadow:0 15px 35px rgba(50,50,93,.1),0 5px 15px rgba(0,0,0,.1);border-radius:4px}.seopress-styles .seopress-option h1{font-size:16px;font-weight:700;color:#3297d3;text-transform:uppercase;z-index:100;border-bottom:1px solid #eee;padding-bottom:20px}.seopress-styles .seopress-option h1 .dashicons,.seopress-styles .seopress-option h2 .dashicons{margin:0 10px;font-size:40px;width:40px;height:40px;vertical-align:middle}.seopress-styles .seopress-option .link-archive{font-size:14px}.seopress-styles .seopress-option .link-archive .dashicons{font-size:18px;width:20px;height:20px;margin:inherit}.seopress-styles .seopress-option h1>.dashicons{font-size:30px;width:30px;height:30px;background:#c4f0ff;border-radius:6px;padding:10px;margin-left:10px;color:#0085ba}.seopress-styles .seopress-option .metabox-holder h2 .dashicons{font-size:16px}.seopress-option h1 .feature-state .dashicons{font-size:16px;width:16px;height:16px;vertical-align:middle;margin:0 10px 0 0}.seopress-styles .wrap{margin:20px 0 0 0;display:flex;position:relative}@media only screen and (max-width:1024px){.seopress-styles .wrap{display:inline-block;width:100%}}#seopress-admin-tabs.wrap{display:block;box-shadow:0 7px 14px 0 rgba(60,66,87,.12),0 3px 6px 0 rgba(0,0,0,.12);width:64rem;margin:0 auto}.seopress-styles .seopress-option .submit{background:#fff;text-align:center;border-top:1px solid #f1f1f1;padding-top:20px;padding-bottom:20px;margin:0}.seopress-styles .seopress-option #seopress-aio-migrate,.seopress-styles .seopress-option #seopress-rk-migrate,.seopress-styles .seopress-option #seopress-seo-framework-migrate,.seopress-styles .seopress-option #seopress-squirrly-migrate,.seopress-styles .seopress-option #seopress-yoast-migrate,.seopress-styles .seopress-option #submit{color:#fff;text-decoration:none;border:none;border-radius:4px;padding-right:20px;padding-left:20px;line-height:34px;text-transform:uppercase;min-height:34px;transition:all .3s linear;text-shadow:none;box-shadow:0 7px 14px rgba(50,50,93,.1),0 3px 6px rgba(0,0,0,.1);margin-right:15px;background:#6a7c94;position:relative;height:auto;z-index:10}.seopress-styles .seopress-option #seopress-aio-migrate:hover,.seopress-styles .seopress-option #seopress-rk-migrate:hover,.seopress-styles .seopress-option #seopress-seo-framework-migrate:hover,.seopress-styles .seopress-option #seopress-squirrly-migrate:hover,.seopress-styles .seopress-option #seopress-yoast-migrate:hover,.seopress-styles .seopress-option #submit:hover{text-decoration:none;color:#fff;background:#232323}.seopress-styles #wpcontent{padding-left:0}.seopress-styles pre{color:#42b72a;background:#f5f6f7;font-family:Menlo,Monaco,Andale Mono,Courier New,monospace;padding:7px}.seopress-styles #seopress-navbar{padding:10px .5rem;height:56px;margin:0 auto;width:64rem;box-sizing:border-box;position:relative}#seopress-header{margin:0 auto;position:relative;width:100%}#seopress-header #seopress-admin h1{line-height:40px;margin:0;display:inline-block;height:40px;width:40px;background-size:100%;background-repeat:no-repeat}#seopress-header #seopress-admin h1::before{font-size:14px;line-height:40px;position:absolute;border-radius:6px;font-weight:400;color:#fff;width:40px;height:40px;text-align:center;background:#3a4afb;background:-moz-linear-gradient(45deg,#3a4afb 0,#47bea5 100%);background:-webkit-linear-gradient(45deg,#3a4afb 0,#47bea5 100%);background:linear-gradient(45deg,#3a4afb 0,#47bea5 100%)}#seopress-header #seopress-admin h1:hover{cursor:pointer}#seopress-header #seopress-admin h1>a{text-decoration:none;color:inherit}#seopress-header #seopress-admin .seopress-quick-access{background:#fff;box-shadow:0 50px 100px rgba(50,50,93,.1),0 15px 35px rgba(50,50,93,.2),0 5px 15px rgba(0,0,0,.1);border-radius:4px;overflow:hidden;position:relative;font-size:17px;line-height:40px;white-space:nowrap;transform:rotate3d(1,1,0,-15deg);transform-origin:100% 0;opacity:0;will-change:transform,opacity;transition-property:transform,opacity;transition-duration:.25s;z-index:300;padding:0;display:block;width:64rem;top:0;visibility:hidden;cursor:auto;left:-.5rem}#seopress-header #seopress-admin h1:hover .seopress-quick-access{transform:none;opacity:1;pointer-events:auto;visibility:visible}#seopress-header #seopress-admin .seopress-quick-access>ul{padding:20px;margin:0;float:left;width:100%;box-sizing:border-box}#seopress-header #seopress-admin h1 .seopress-quick-access li{text-decoration:none;display:inline-block;width:50%;margin:0;float:left;padding:10px 0}#seopress-header #seopress-admin h1 .seopress-quick-access li .dashicons{vertical-align:middle;background:#b7e1f3;border-radius:50%;padding:5px;margin-right:15px}#seopress-header #seopress-admin h1 .seopress-quick-access li a{text-decoration:none;font-size:15px;line-height:30px;text-transform:uppercase;display:block;width:100%;transition:all .3s linear;color:#3297d3}#seopress-header #seopress-admin h1 .seopress-quick-access li a:hover{color:#647a88}#seopress-header #seopress-admin h1 .seopress-info-version{position:relative;left:50px;top:0;font-size:14px;width:100px;display:block}#seopress-header #seopress-admin .wpc-info-version{font-size:14px;left:310px;position:absolute;text-indent:0;top:85px}#seopress-header #seopress-notice{float:right;line-height:40px}#seopress-header #seopress-notice p{font-size:16px}#seopress-header #seopress-notice .dashicons{color:#6f8096;text-decoration:none;line-height:40px}#seopress-header #seopress-notice div.small{font-size:13px;display:inline}#seopress-footer-credits{font-style:italic}#seopress-footer-credits .wporg-ratings{display:inline}#seopress-footer-credits .wporg-ratings a{text-decoration:none}.seopress-option .seopress-settings{float:left;max-width:750px;width:100%}.seopress-option #seopress-edd-license-btn,.seopress-option #seopress-refresh{float:left}.wp-admin-ui_page_seopress-import-export .postbox{margin-right:20px}.seopress-option #side-sortables .accordion-section-content{padding:0}.seopress-option .seopress-settings label{margin:0 0 0 10px}.wrap-seopress-tab-content{position:relative;display:block;width:100%;max-width:64rem;margin:0 auto;box-sizing:border-box}#seopress-admin-tabs .seopress-tab{padding:1.5rem;visibility:hidden;overflow:hidden;opacity:0;transition:all .2s ease;transform:translateX(-15px);position:absolute;top:0;box-sizing:border-box}#seopress-admin-tabs .seopress-tab.active{visibility:visible;overflow:inherit;opacity:1;transform:translateX(0);display:inherit;position:relative}#seopress-tabs .seopress-tab{padding:0 1.5rem;width:calc(100% - 230px);display:none}@media only screen and (max-width:1024px){#seopress-tabs .seopress-tab{width:100%}}#seopress-tabs .seopress-tab.active{display:inline-block;border-left:1px solid #eee}@media only screen and (max-width:1024px){#seopress-tabs .seopress-tab.active{width:100%;padding:0;border-left:none;border-top:1px solid #eee}}.seopress-option input[type=password],.seopress-option input[type=text],.seopress-option textarea{min-width:485px}@media only screen and (max-width:1024px){.seopress-option input[type=password],.seopress-option input[type=text],.seopress-option textarea{min-width:inherit;width:100%}}#seopress_htaccess_file{width:100%}.seopress-option textarea{min-height:100px}.seopress-option #side-sortables .highlight{border:1px dashed #ccc;display:block;width:382px;height:40px;background:0 0}.seopress-option #side-sortables .accordion-section{margin-bottom:9px;width:382px}.seopress-option #side-sortables .accordion-section h3{cursor:move;border:1px solid #e5e5e5;background:#fafafa}.seopress-option #side-sortables .accordion-section .inside{padding:10px 10px 24px;border-width:0 1px 1px;border-style:solid;box-shadow:0 1px 1px rgba(0,0,0,.04);border-color:#e5e5e5;display:inline-block;width:calc(100% - 22px);height:100%}.seopress-option #side-sortables .accordion-section .inside ul{padding-left:10px;margin-bottom:0;padding-top:2px;padding-bottom:2px}.seopress-option #side-sortables .accordion-section .inside ul li{border-left:2px solid #ccc;padding-left:10px;margin-bottom:10px}.seopress-option #side-sortables .accordion-section .inside ul li:first-child{border-bottom:1px dotted #e5e5e5;border-left:0;padding-bottom:10px;font-weight:700;margin-left:-15px;margin-bottom:10px}.seopress-notice #message{margin:5px 10px 2px 0}#seopress-notice a{position:relative;text-decoration:none}#seopress-notice a .tooltip{white-space:pre;z-index:200;padding:2px 5px;font-weight:500;font-size:12px;color:#aab7c4;background:#fff;box-shadow:0 1px 2px 0 rgba(49,49,93,.1),0 0 1px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;opacity:0;top:30px;transition:opacity .2s ease;visibility:hidden;line-height:20px;left:-100%;overflow:hidden}#seopress-notice a:hover .tooltip{opacity:1;visibility:visible}.seopress-page-list{margin:1.5rem auto}.seopress-option .dashicons,.seopress-page-list .dashicons{vertical-align:middle;margin-right:5px;color:#6f8096}#seopress-admin-tabs .ui-tabs-nav,#seopress-notifications-center,.seopress-get-started,.seopress-page-list .seopress-feature,.seopress-useful-tools{margin:0 auto 20px;max-width:64rem;padding:2rem;width:100%;border-radius:0 0 4px 4px;box-sizing:border-box}.seopress-get-started{margin-top:20px;background:#fff url(../img/bg-hero-support.svg) no-repeat 95% 50%/contain;position:relative;box-sizing:border-box;box-shadow:0 7px 14px 0 rgba(60,66,87,.12),0 3px 6px 0 rgba(0,0,0,.12)}.seopress-get-started .inside{max-width:calc(100% - 380px)}.seopress-get-started .preheader{text-transform:uppercase;font-size:.8rem;font-weight:600}.seopress-get-started h2{font-size:1.85em;margin:15px 0 0 0;font-weight:400}.seopress-get-started p{margin-bottom:20px}.seopress-get-started a .dashicons{vertical-align:middle;text-decoration:none;color:#6a7c94}.seopress-get-started a.button-primary .dashicons{color:#fff}.seopress-get-started a.btn-link .dashicons{margin-right:5px}.seopress-get-started a.btn-link{margin:0 0 0 10px}#seopress-notifications-center,.seopress-useful-tools{background:#fff;padding:0}.seopress-page-list .seopress-feature{padding:0;position:relative;overflow:hidden;transition-duration:.15s;display:flex;margin:0;background:#fff;box-shadow:0 7px 14px 0 rgba(60,66,87,.12),0 3px 6px 0 rgba(0,0,0,.12);flex-wrap:wrap;border-radius:4px;width:100%;height:100%}.seopress-page-list .seopress-feature p{color:#6b7c93;font-size:14px;margin-bottom:30px}#seopress-notifications-center{margin-top:0}#seopress-admin-tabs .ui-tabs-nav{display:flex;padding-top:1rem;padding-bottom:0}.seopress-page-list .seopress-feature .img-tool{height:50px;width:50px;background:#c4f0ff;position:relative;border-radius:6px}.seopress-page-list .seopress-feature .img-tool .dashicons{color:#217ab7;font-size:30px;text-align:left;vertical-align:middle;width:100%;height:100%;position:absolute;top:calc(50% - 15px);left:calc(50% - 15px);margin:0}.seopress-page-list .seopress-feature .inner{margin:0;display:inline-block;padding:1.5rem;width:100%;height:100%;box-sizing:border-box}.seopress-page-list .seopress-feature h3{margin:1rem 0 0 0;font-size:16px;font-weight:700;color:#3297d3;text-transform:uppercase}.seopress-page-list .seopress-feature h3 .dashicons{font-size:16px;margin-left:5px;vertical-align:middle}#seopress-content .seopress-page-list .seopress-feature a,#seopress-notifications-center .seopress-alert .button-primary,.seopress-get-started .button-primary,.seopress-option .seopress-feature a,.seopress-useful-tools .widget .button-primary{color:#fff;text-decoration:none;border:none;border-radius:4px;padding-right:20px;padding-left:20px;line-height:34px;text-transform:uppercase;min-height:34px;transition:all .3s linear;text-shadow:none;box-shadow:0 7px 14px rgba(50,50,93,.1),0 3px 6px rgba(0,0,0,.1);background:#6a7c94;position:relative;height:auto;display:flex;flex-wrap:wrap}#seopress-content .seopress-page-list .seopress-feature a.button-secondary{padding-left:30px}#seopress-content .seopress-page-list .seopress-feature a.button-secondary::before,#seopress-notifications-center .seopress-alert .button-primary::after{content:"\f111";font-family:Dashicons;position:absolute;left:10px;top:1px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:16px}#seopress-content .seopress-page-list .wrap-btn{display:inline-flex;margin-bottom:2rem;flex-direction:column}#seopress-content .seopress-page-list .seopress-feature a.view-redirects,#seopress-notifications-center .seopress-alert .button-primary,.seopress-get-started .button,.seopress-option .button{color:#6a7c94;background:#fff;font-weight:500;transition:all .3s linear;text-shadow:none;text-transform:uppercase;padding-right:20px;padding-left:20px;line-height:34px;min-height:34px;margin:10px 0;border-radius:4px;box-shadow:transparent 0 0 0 0,transparent 0 0 0 0,rgba(0,0,0,.12) 0 1px 1px 0,rgba(60,66,87,.16) 0 0 0 1px,transparent 0 0 0 0,transparent 0 0 0 0,rgba(60,66,87,.12) 0 2px 5px 0;vertical-align:baseline;display:inline-flex;align-items:center;border:none;margin-right:.5rem;cursor:pointer}.seopress-get-started .button{color:#fff;background:#6259e6;box-shadow:none}.seopress-option .wp-picker-container button{box-shadow:none;border:1px solid #0071a1;border-radius:3px;background:#f3f5f6;text-transform:none}.seopress-option .wp-picker-container input[type=text].wp-color-picker{min-width:inherit}.seopress-option .wp-picker-container .wp-picker-clear{box-shadow:none;text-transform:none;border-radius:0;background:0 0}.seopress-option .wp-picker-container .wp-picker-clear:hover{background:0 0;text-decoration:currentColor;color:inherit}.seopress-option .button .dashicons{font-size:16px}#seopress-content .seopress-page-list .seopress-feature a.view-redirects{padding-left:30px}#seopress-notifications-center .seopress-alert .button-primary::after{content:"\f344";left:inherit;right:10px}#seopress-content .seopress-page-list .seopress-feature a.view-redirects::before{content:"\f177"}#seopress-content .seopress-page-list .seopress-feature a:hover,#seopress-notifications-center .seopress-alert .button-primary:hover,.seopress-get-started .button-primary:hover,.seopress-option .button:hover,.seopress-option .seopress-feature a:hover,.seopress-useful-tools .widget .button-primary:hover{text-decoration:none;color:#fff;background:#232323}.seopress-get-started .button .dashicons{transition:all .3s linear}.seopress-get-started .button:hover .dashicons{color:#fff}#seopress-content .seopress-page-list .seopress-feature .seopress-doc:focus,#seopress-content .seopress-page-list .seopress-feature a:focus,#seopress-content .seopress-page-list .seopress-feature a:focus.button-secondary,#seopress-content a:focus,#seopress-notifications-center .seopress-alert .button-primary:focus,.seopress-option #seopress-tabs .seopress-doc:focus,.seopress-option .seopress-feature a:focus,.seopress-styles .seopress-option #seopress-aio-migrate:focus,.seopress-styles .seopress-option #seopress-yoast-migrate:focus,.seopress-styles .seopress-option #submit:focus,.seopress-useful-tools .widget .button-primary:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;background:#008ec2;border-color:#006799;color:#fff}#seopress-admin-tabs .nav-tab-wrapper a.nav-tab-active:focus{color:inherit}#seopress-notifications-center .seopress-alert .button-primary{margin:5px 0;padding-right:30px}#seopress-notifications-center h2,.seopress-useful-tools h2{margin:5px 0 15px 5px;display:inline-block;width:100%}#seopress-notifications-center .dashicons,.seopress-useful-tools .dashicons{margin-right:10px}#seopress-notifications-center .seopress-alert{padding:1.5rem 2rem 1.2rem 1rem;border-bottom:1px solid #e6ebf1;width:calc(100% - 3rem);flex:1 1 auto;position:relative;transition:all 150ms ease;align-items:center;display:flex;justify-content:space-between}#seopress-notifications-center .seopress-alert:last-child{margin-bottom:0;border-bottom:none}#seopress-notifications-center .seopress-alert:hover{cursor:default}#seopress-notifications-center .dashicons{display:flex;align-self:normal;width:48px;height:48px;color:#d7dade;font-size:48px;padding:0 1rem}#seopress-notifications-center .seopress-alert p{margin:0}#seopress-notifications-center .notice-left{flex:1}#seopress-notifications-center .notice-left>p:first-child{color:#1a1f36;font-weight:500}#seopress-notifications-center .notice-right{padding:1rem 0 0 0;display:flex}#seopress-notifications-center .seopress-alert.impact::after{content:"";width:10px;height:10px;border-radius:50px;position:absolute;right:1rem;top:1rem}#seopress-notifications-center .seopress-alert.impact.low::after{background:#ffde24}#seopress-notifications-center .seopress-alert.impact.medium::after{background:#e39f48}#seopress-notifications-center .seopress-alert.impact.high::after{background:#e25950}#seopress-notifications-center .seopress-alert.impact.info::after{background:#0085ba}#seopress-notifications-center .seopress-alert.dashicons{color:#6f8096}#seopress-notifications-center .dashicons.remove-notice,.seopress-get-started .remove-notice{position:absolute;right:0;color:#6b7c93;font-size:20px;height:30px;width:30px;vertical-align:middle;top:1.2rem;line-height:30px;padding:5px;transition:all .3s linear;margin:0;display:block}.seopress-get-started .remove-notice{top:10px;right:10px}#seopress-notifications-center .dashicons.remove-notice:hover,.seopress-get-started .remove-notice:hover{color:#1a1f36;cursor:pointer}#seopress-content .seopress-page-list .seopress-feature .seopress-doc,.seopress-option #seopress-tabs .seopress-doc{background:0 0;padding:0;text-decoration:none;color:inherit;box-shadow:none;position:absolute;right:.5rem;top:1rem}#seopress-content .seopress-page-list .seopress-feature .seopress-doc:hover,.seopress-option #seopress-tabs .seopress-doc:hover{color:#747474;background:0 0}#seopress-content .seopress-page-list .seopress-feature .seopress-doc:hover .dashicons{color:#232323}.seopress-option .seopress-table{background:#fff;border:1px solid #ccc}.seopress-option .seopress-table th{padding:15px 10px;vertical-align:middle}.wp-admin-ui_page_seopress-roles .seopress-option .seopress-table th{min-width:200px}.seopress-option .seopress-table .seopress-settings-section{background:#f1f1f1}.seopress-option .seopress-table .seopress-table-head .seopress-feature{border-bottom:1px solid #ccc;font-weight:700;background:#f1f1f1}#seopress-content .feature-state,.seopress-option .feature-state{font-style:italic;font-size:10px;display:inline-block;background:rgba(0,140,135,.1);padding:2px 10px;border-radius:25px;color:#444;font-weight:400;text-transform:none;-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial}@media only screen and (max-width:768px){#seopress-content .feature-state,.seopress-option .feature-state{display:none}}.seopress-option .seopress_wrap_single_cpt .feature-state,.seopress-option .seopress_wrap_tax .feature-state{padding:2px 12px;margin:0 0 .5rem .5rem}.seopress-option #tab_seopress_titles_archives h2,.seopress-option #tab_seopress_titles_single h2,.seopress-option #tab_seopress_titles_tax h2{margin:2em 0 1em 0;border-top:1px solid #eee;padding:1em 0 0 0}.seopress-option #tab_seopress_titles_archives h2:first-child,.seopress-option #tab_seopress_titles_single h2:first-child,.seopress-option #tab_seopress_titles_tax h2:first-child{border-top:none;margin:0 0 1em 0}#seopress_cpt .tag-title,#seopress_pro_cpt .tag-title,.seopress-button,.seopress-option .tag-title{cursor:pointer;font-weight:500;border-radius:4px;transition:all .3s linear}#seopress-content .feature-state-on,#seopress-content .feature-state.feature-state-on,.seopress-option .feature-state-on,.seopress-option .feature-state.feature-state-on{display:inline-block}#seopress-content .feature-state-off,.seopress-option .feature-state-off{display:none}.seopress-option .postbox .inside li{list-style:square inside;padding-left:5px}#tab_seopress_page_speed .inside li{list-style:none;padding-left:0;word-break:break-word}.seopress-option .log{margin:0;text-transform:uppercase;display:inline-block;vertical-align:middle;padding:5px;color:#13bf11;font-style:italic}.seopress-option input[type=text].seopress-admin-menu-input{min-width:inherit;width:100%}.seopress_page_seopress-import-export .postbox{width:calc(100% - 20px)}#seopress_cpt .wrap-tags,#seopress_pro_cpt .wrap-tags,.seopress-option .wrap-tags{position:relative;display:inline-block;width:100%;margin-bottom:10px}#seopress_cpt .tag-title,#seopress_pro_cpt .tag-title,.seopress-option .tag-title{padding:4px 8px;position:relative;top:5px;left:0;font-size:11px;float:left;margin-right:5px;user-select:none;margin-bottom:5px;background:#fff;color:#6b7c93;box-shadow:0 0 0 .5px rgba(50,50,93,.17),0 2px 5px 0 rgba(50,50,93,.12),0 3px 9px 0 rgba(50,50,93,.08),0 1px 1.5px 0 rgba(0,0,0,.08),0 1px 2px 0 rgba(0,0,0,.08)}#seopress_cpt .tag-title:active,#seopress_cpt .tag-title:focus,#seopress_cpt .tag-title:hover,#seopress_pro_cpt .tag-title:active,#seopress_pro_cpt .tag-title:focus,#seopress_pro_cpt .tag-title:hover,.seopress-option .tag-title:active,.seopress-option .tag-title:focus,.seopress-option .tag-title:hover{background:#232323;color:#fff;user-select:none}#seopress_cpt .tag-title .dashicons,#seopress_pro_cpt .tag-title .dashicons,.seopress-option .tag-title .dashicons{padding:0;height:16px;width:16px;font-size:16px;margin-right:5px;vertical-align:middle}.seopress-button{text-transform:uppercase;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;display:inline-block;margin:0;outline:0;overflow:hidden;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:20px;padding:6px 8px 6px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.seopress-button:hover{border-color:#a8bece;color:#00a0d2}.seopress-button .dashicons{vertical-align:middle}#seopress-content #tab_seopress_seo_tools.seopress-useful-tools .widget{border-right:1px solid #e6ebf1;margin:0;padding:0 20px;width:calc(50% - 2px);box-sizing:border-box;display:inline-block;vertical-align:top}#seopress-content #tab_seopress_seo_tools.seopress-useful-tools .widget:first-child{width:100%;display:block;clear:both;border-right:none;border-bottom:1px solid #e6ebf1;padding-bottom:20px;margin-bottom:20px}#seopress-content #tab_seopress_seo_tools.seopress-useful-tools .widget:last-child{border-right:none}#seopress-content .seopress-useful-tools .widget-reverse ul{background:#fff}#seopress-content .seopress-useful-tools .widget-reverse li{padding:10px;margin:0;border-bottom:1px solid #e6ebf1}#seopress-content .seopress-useful-tools .widget-reverse li:hover{background:#f5f7fa}#seopress-content .seopress-useful-tools .widget-title{text-transform:uppercase;margin:0 0 10px;font-size:13px;padding:10px 0;color:#24b47e}#seopress-content .seopress-reverse label,#seopress-content .seopress-useful-tools .widget-whois ul li span{font-weight:700}#seopress-content #seopress-reverse-url{width:100%;margin:10px 0}#seopress-content .widget-reverse p{margin:0}.post-type-seopress_backlinks .wp-list-table .column-seopress_backlinks_url{width:35%}.post-type-seopress_backlinks .wp-list-table .column-seopress_backlinks_anchor_text{width:20%}.seopress-styles #screen-meta{margin:0;position:relative;background-color:#fff;border-bottom:0 solid #f2f2f2;border-top:none;-webkit-box-shadow:0 0 0 1px rgba(136,152,170,.1),0 15px 35px 0 rgba(49,49,93,.1),0 5px 15px 0 rgba(0,0,0,.08);box-shadow:0 0 0 1px rgba(136,152,170,.1),0 15px 35px 0 rgba(49,49,93,.1),0 5px 15px 0 rgba(0,0,0,.08);top:0}.seopress-styles #contextual-help-link-wrap,.seopress-styles #screen-options-link-wrap{float:right;height:28px;margin:0 0 0 6px;border:1px solid #f2f2f2;border-top:none;background:#fff;-webkit-box-shadow:0 0 0 1px rgba(136,152,170,.1),0 15px 35px 0 rgba(49,49,93,.1),0 5px 15px 0 rgba(0,0,0,.08);box-shadow:0 0 0 1px rgba(136,152,170,.1),0 15px 35px 0 rgba(49,49,93,.1),0 5px 15px 0 rgba(0,0,0,.08)}.seopress-styles #screen-meta-links .show-settings{box-shadow:none}.seopress-styles #screen-meta-links .screen-meta-toggle{position:relative;top:0;z-index:2000}.seopress-styles #contextual-help-back{background:#f8fafd}.seopress-styles .contextual-help-tabs .active{border-left:2px solid #3297d3;background:#f8fafd}#seopress-content input.toggle,#seopress_cpt input.toggle,.seopress-option input.toggle{max-height:0;max-width:0;opacity:0;position:relative}.seopress-feature input.toggle{display:block}.wrap-toggle-preview{position:relative}.wrap-toggle-preview p{font-weight:700;margin:0 0 1rem 0}#seopress_cpt input.toggle,.seopress_wrap_single_cpt input.toggle,.seopress_wrap_tax input.toggle{margin:0;border:none;min-width:0}#seopress_content_analysis span.label,#seopress_cpt span.label{outline:0;color:#fff;box-shadow:none;background:#555d66;padding:2px 4px;border-radius:4px;font-weight:700}#seopress-content input.toggle+label,#seopress_cpt #tabs-1 input.toggle+label,.seopress-option input.toggle+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 1px #d5d5d5;text-indent:-5000px;height:20px;width:40px;border-radius:15px}#seopress_cpt #tabs-1 input.toggle+label{margin:0}.wrap-toggle-checkboxes input.toggle+label{float:left;margin-right:10px}#seopress-content input.toggle+label:before,#seopress_cpt input.toggle+label:before,.seopress-option input.toggle+label:before{content:"";position:absolute;display:block;height:20px;width:30px;top:0;left:0;border-radius:15px;background:rgba(19,191,17,0);-moz-transition:.25s ease-in-out;-webkit-transition:.25s ease-in-out;transition:.25s ease-in-out}#seopress-content input.toggle+label:after,#seopress_cpt input.toggle+label:after,.seopress-option input.toggle+label:after{content:"";position:absolute;display:block;height:20px;width:20px;top:0;left:0;border-radius:15px;background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2),0 2px 4px rgba(0,0,0,.2);-moz-transition:.25s ease-in-out;-webkit-transition:.25s ease-in-out;transition:.25s ease-in-out}#seopress_cpt input.toggle+label,#seopress_cpt input.toggle+label:before,.seopress_wrap_single_cpt input.toggle+label,.seopress_wrap_single_cpt input.toggle+label:before,.seopress_wrap_tax input.toggle+label,.seopress_wrap_tax input.toggle+label:before{width:40px;height:20px}#seopress_cpt input.toggle+label:after,.seopress_wrap_single_cpt input.toggle+label:after,.seopress_wrap_tax input.toggle+label:after{width:20px;height:20px}#seopress-content input.toggle[data-toggle="1"]+label:before,#seopress_cpt input.toggle[data-toggle="1"]+label:before,.seopress-option input.toggle[data-toggle="1"]+label:before{width:40px;background:#3197d3}#seopress_cpt input.toggle[data-toggle="1"]+label:before,.seopress_wrap_single_cpt input.toggle[data-toggle="1"]+label:before,.seopress_wrap_tax input.toggle[data-toggle="1"]+label:before{width:40px;background:#3197d3}#seopress-content input.toggle[data-toggle="1"]+label:after,#seopress_cpt input.toggle[data-toggle="1"]+label:after,.seopress-option input.toggle[data-toggle="1"]+label:after{left:20px;box-shadow:inset 0 0 0 1px #3197d3,0 2px 4px rgba(0,0,0,.2)}#seopress_cpt input.toggle[data-toggle="1"]+label:after,.seopress_wrap_single_cpt input.toggle[data-toggle="1"]+label:after,.seopress_wrap_tax input.toggle[data-toggle="1"]+label:after{box-shadow:inset 0 0 0 1px #3197d3,0 2px 4px rgba(0,0,0,.2)}#seopress-content .seopress-page-list{position:relative;display:grid;max-width:64rem;grid-gap:20px 20px;grid-template-columns:repeat(3,1fr)}#seopress-notice-save{position:fixed;color:#fff;padding:15px 40px;font-size:.9rem;text-transform:uppercase;text-align:center;border-radius:0;background:rgba(74,184,102,.9);bottom:0;right:0;z-index:500;width:100%;font-weight:700}#seopress-notice-save .dashicons{color:#fff}.seopress_page_seopress-pro-page #wpcontent{background:#f4f7fa}.seopress-option .wrap div.nav-tab-wrapper{margin:0 0 0 -26px;padding:0 0 0 10px;line-height:inherit;width:230px;z-index:95;font-weight:400;display:block;border-bottom:none}@media only screen and (max-width:1024px){.seopress-option .wrap div.nav-tab-wrapper{width:100%;margin:0;padding:0}}#seopress-admin-tabs.wrap div.nav-tab-wrapper{margin:20px auto 0;max-width:64rem;width:100%;border-bottom:1px solid #e6ebf1;padding:0;line-height:inherit;position:-webkit-sticky;position:sticky;background:#f5f7fa;z-index:100;top:31px;border-radius:4px 4px 0 0;font-weight:400;overflow:hidden;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box}#seopress-admin-tabs #tab_seopress_notifications.seopress-tab{background:0 0;padding:0;border-radius:0}.seopress-option .nav-tab{border:0 solid #ccc;background:0 0;opacity:.5;padding:6px 30px 6px 10px;transition:opacity .3s linear;color:#191e23;margin:0;float:none;display:inline-block;width:100%;text-align:left;font-weight:400;box-sizing:border-box;white-space:normal}#seopress-admin-tabs .nav-tab{border:0 solid #ccc;background:0 0;opacity:.5;padding:14px 20px;transition:opacity .3s linear;color:#191e23;margin:0;box-shadow:inset -1px 0 #e3e8ee;float:none;display:inline-block;text-align:center;font-weight:400}#seopress-admin-tabs .nav-tab{width:100%}#seopress-admin-tabs .nav-tab-active,#seopress-admin-tabs .nav-tab-active:hover,.seopress-option .about-wrap h2 .nav-tab-active,.seopress-option .nav-tab-active,.seopress-option .nav-tab-active:hover{background-color:#fff}#seopress-admin-tabs .nav-tab-active,#seopress-admin-tabs .nav-tab-active:focus,#seopress-admin-tabs .nav-tab-active:focus:active,#seopress-admin-tabs .nav-tab-active:hover,#seopress-admin-tabs .nav-tab:focus,.nav-tab-active:focus,.seopress-option .nav-tab-active,.seopress-option .nav-tab-active:focus:active,.seopress-option .nav-tab-active:hover,.seopress-option .nav-tab:focus{opacity:1;outline:0;font-weight:600;position:relative;color:#191e23;border-left:3px solid #0085ba;background:rgba(0,133,186,.1)}#seopress-admin-tabs .nav-tab-active,#seopress-admin-tabs .nav-tab-active:focus,#seopress-admin-tabs .nav-tab-active:focus:active,#seopress-admin-tabs .nav-tab-active:hover,#seopress-admin-tabs .nav-tab:focus{border-bottom:3px solid #3197d3;border-left:none;background:#fff}#seopress-admin-tabs .nav-tab:hover,.seopress-option .nav-tab:hover{opacity:1}#seopress-admin-tabs .nav-tab:focus,.seopress-option .nav-tab:focus{outline:0;box-shadow:none}.seopress-option .section-tool{border:none;box-shadow:none;background:0 0;position:relative}.seopress-option .section-tool::after{content:'';background:#dedede;height:1px;width:100%;display:block}.seopress-option .sp-section-header{border-bottom:1px solid #eee;margin:0 0 1rem 0;width:100%;display:flex;position:relative;align-items:center;padding-bottom:.5rem}.seopress-option .sp-section-header::after{position:absolute;content:'';background:#0085ba;height:2px;width:40px;bottom:0;left:0}.seopress-option .sp-section-header h2{font-size:1.5em}.seopress-option .sp-section-header>.dashicons{color:#0085ba;padding:10px;border-radius:6px;margin-right:10px;background:#c4f0ff}.seopress-option .sp-section-header .wrap-toggle-checkboxes{display:flex}.seopress-styles .wrap .notice{margin:5px 0 15px 15px}
1
+ #adminmenu div.wp-menu-image.dashicons-admin-seopress::before,#seopress-header #seopress-admin h1::before{content:"\e800";font-family:seopress!important;font-weight:700;font-size:12px;line-height:20px}#seopress-header #seopress-admin h1::before,.seopress-page-list .seopress-feature h3,.seopress-styles .seopress-option h1{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased}@font-face{font-family:seopress;src:url(../fonts/seopress.eot?81521271);src:url(../fonts/seopress.eot?81521271#iefix) format('embedded-opentype'),url(../fonts/seopress.woff?81521271) format('woff2'),url(../fonts/seopress.woff?81521271) format('woff'),url(../fonts/seopress.ttf?81521271) format('truetype'),url(../fonts/seopress.svg?81521271#seopress) format('svg');font-weight:400;font-style:normal}[class*=" icon-seopress"],[class^=icon-seopress-]{font-family:seopress!important;font-size:14px!important;line-height:24px!important}#tab_seopress_titles_archives .form-table th:empty,#tab_seopress_titles_single .form-table th:empty,#tab_seopress_titles_tax .form-table th:empty{display:none}.icon-seopress-seopress:before{content:"\e800"}.sp-tooltip{position:relative;margin-left:5px;display:inline-block;cursor:help;vertical-align:bottom;text-align:center}.sp-tooltip .dashicons{color:#666}.sp-tooltip .sp-tooltiptext{visibility:hidden;position:absolute;z-index:999999999;width:300px;right:-303px;padding:20px;top:25px;font-weight:400;box-shadow:0 3px 30px rgba(25,30,35,.1);border:1px solid #e2e4e7;background:#fff;word-break:break-word}.sp-tooltip .sp-tooltiptext::before{border:8px solid #e2e4e7;top:-8px}.sp-tooltip .sp-tooltiptext::after{border:8px solid #fff;top:-6px}.sp-tooltip .sp-tooltiptext::after,.sp-tooltip .sp-tooltiptext::before{border-bottom-style:solid;border-left-color:transparent;border-right-color:transparent;border-top:none;margin-left:-10px;content:"";position:absolute;height:0;width:0;line-height:0;left:30px}.sp-tooltip:hover .sp-tooltiptext{visibility:visible}.sp-tooltip .sp-tooltip-headings{font-size:18px;font-weight:600;margin-bottom:20px;display:block}.sp-tooltip .sp-tooltip-desc{margin-bottom:20px;display:block;border-bottom:1px solid #e2e4e7;padding-bottom:20px;font-size:13px}.sp-tooltip .sp-tooltip-code{font-family:Menlo,Monaco,Andale Mono,Courier New,monospace;display:block;word-break:break-all;color:#42b72a;font-size:11px}.analysis-score .sp-tooltip{vertical-align:middle;font-size:.75em}#seopress_content_analysis a{color:#0073aa}#seopress_content_analysis .wrap-seopress-analysis{display:inline-block;width:100%}#seopress_content_analysis .col-left{width:calc(50% - 30px);float:left;margin-right:30px}#seopress_content_analysis .col-right{float:right;width:50%}#seopress_content_analysis #seopress_suggestions{display:inline-block;width:100%;margin:0;height:auto;padding:20px 0}#seopress_content_analysis #seopress_suggestions li{list-style:none;margin:5px;display:inline-block}#seopress_content_analysis .analysis-score{clear:both;border-top:1px solid #e2e4e7;display:flex;justify-content:space-between;align-items:center}.column-seopress_score .analysis-score{display:flex;align-content:center}#seopress_content_analysis .analysis-score p,.column-seopress_score .analysis-score p{font-weight:700;font-size:1.2em}#seopress_content_analysis .analysis-score svg,.column-seopress_score .analysis-score svg{display:inline-block;height:30px;width:30px;margin:0;border-radius:100%;position:relative;font-weight:600;shape-rendering:geometricprecision;font-size:.5rem;vertical-align:middle;margin-right:15px}.column-seopress_score .analysis-score p,.column-seopress_score .analysis-score svg{margin:0}@keyframes loadingPulse{0%{stroke:#adc5d2}50%{stroke:#00a0d2}100%{stroke:#adc5d2}}#seopress_content_analysis .analysis-score .loading #bar{stroke-dashoffset:0!important;stroke:#adc5d2!important;animation:loadingPulse 3s infinite ease-in-out}#seopress_content_analysis .analysis-score .good #bar,.column-seopress_score .analysis-score #bar.good{stroke:#46b450}#seopress_content_analysis .analysis-score .notgood #bar,.column-seopress_score .analysis-score #bar.notgood{stroke-dashoffset:565;stroke:#ffb900}#seopress_content_analysis .analysis-score svg circle,.column-seopress_score .analysis-score svg circle{stroke-dashoffset:0;transition:stroke-dashoffset 1s linear;stroke:#ccc;stroke-width:2em}#seopress_content_analysis .gr-analysis{clear:both}#seopress_content_analysis .gr-analysis-title{border-top:1px solid #e2e4e7;position:relative}#seopress_content_analysis .gr-analysis-title .impact{position:absolute;left:10px;top:calc(50% - 5px);width:10px;height:10px;border-radius:50px;padding:0;margin:0;border:1px solid #fff}#seopress_content_analysis .gr-analysis .impact.good{background:#46b450;box-shadow:0 0 5px #46b450}#seopress_content_analysis .gr-analysis .impact.low{background:#ffde24;box-shadow:0 0 5px #ffde24}#seopress_content_analysis .gr-analysis .impact.medium{background:#e39f48;box-shadow:0 0 5px #e39f48}#seopress_content_analysis .gr-analysis .impact.high{background:#e25950;box-shadow:0 0 5px #e25950}#seopress_content_analysis .gr-analysis-content .impact.high{background:#e25950;box-shadow:none;color:#fff;padding:2px 4px;margin-left:5px;border-radius:4px;font-weight:700}#seopress_content_analysis .gr-analysis-title button{background:#fff;border:0;cursor:pointer;display:block;margin:0;position:relative;text-align:left;width:100%;padding:15px 30px;align-items:center;transition:all .3s linear}#seopress_content_analysis .gr-analysis-title button:hover{background:#f3f4f5}#seopress_content_analysis .gr-analysis-title button:focus{color:#191e23;border:none;box-shadow:none;outline-offset:-2px;outline:1px dotted #555d66}#seopress_content_analysis .gr-analysis-title button .sp-arrow::after{content:"\f343";font-family:Dashicons;position:absolute;right:10px;top:calc(50% - 7px)}#seopress_content_analysis .gr-analysis-title button.open .sp-arrow::after{content:"\f347"}#seopress_content_analysis .gr-analysis-content{padding:0 1rem .5rem 1rem;display:none;width:100%;border-top:1px solid #e2e4e7;box-sizing:border-box}#seopress_content_analysis h3{margin:0;font-size:1em}#seopress_content_analysis h4{border-bottom:1px solid #e2e4e7;padding-bottom:.5rem;text-transform:uppercase;font-size:.85em;position:-webkit-sticky;position:sticky;top:0;background:#fff}#seopress_content_analysis .wrap-analysis-img ul{display:flex;flex-wrap:wrap}#seopress_content_analysis .wrap-analysis-img ul li{padding:0;text-align:left;cursor:default}#seopress_content_analysis .wrap-analysis-img h4{border-bottom:1px solid #ddd;padding-bottom:10px}#seopress_content_analysis .wrap-analysis-img ul li img{max-width:150px;max-height:150px;object-fit:cover;border:1px solid #f3f4f5;cursor:default;padding:1px}#seopress_cpt .notice{padding:10px 14px}#seopress-analysis-tabs .dashicons,#seopress_cpt .dashicons{vertical-align:middle}#seopress-analysis-tabs{clear:both}#seopress_cpt .inside{margin:0;padding:0}#seopress_cpt .ui-tabs .ui-tabs-nav{display:inline-block;min-height:26px;position:relative;width:100%;z-index:10;margin:0;border-radius:0;padding:0;background:#f3f4f5;border:none}#seopress_cpt .ui-helper-clearfix:after{content:none}.seopress_page_seopress-titles #seopress-tabs .form-table td,.seopress_page_seopress-titles #seopress_content_analysis .form-table td{padding:0}#seopress_cpt .ui-tabs .ui-tabs-panel{background:#fff;border-radius:0;display:inline-block;padding:1em 1.4em;width:100%;box-sizing:border-box}#seopress_content_analysis .dashicons-info,#seopress_cpt .ui-tabs .ui-tabs-panel .dashicons-info,#seopress_pro_cpt .dashicons-info{font-size:16px;vertical-align:middle;height:16px;width:16px}#seopress_cpt .ui-tabs .ui-tabs-nav li,#seopress_cpt .ui-tabs-anchor{cursor:pointer!important}#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-tabs-active{position:relative;z-index:60;cursor:pointer;border-radius:0;border-bottom:3px solid #0085ba}#seopress_content_analysis label,#seopress_cpt #tabs-1 label,#seopress_cpt #tabs-2 label[for=seopress_robots_breadcrumbs_meta],#seopress_cpt #tabs-2 label[for=seopress_robots_canonical_meta],#seopress_cpt #tabs-2 label[for=seopress_robots_primary_cat_meta],#seopress_cpt #tabs-3 label,#seopress_cpt #tabs-4 label,#seopress_cpt #tabs-5 label,#seopress_cpt #tabs-6 label,#seopress_cpt .subsection-title,#seopress_pro_cpt label{display:block;margin:20px 0 5px;font-weight:700}#seopress_cpt .wp-color-result{margin:0}#seopress_content_analysis input[type=text],#seopress_cpt #tabs-1 input,#seopress_cpt #tabs-2 input[type=text],#seopress_cpt #tabs-3 input[type=text],#seopress_cpt #tabs-3 textarea,#seopress_cpt #tabs-4 input[type=text],#seopress_cpt #tabs-5 input[type=text],#seopress_cpt #tabs-6 input[type=text],#seopress_cpt #tabs-6 textarea{width:100%;display:inline-block}#seopress_cpt #tabs-1 input{width:100%}#seopress_cpt #tabs-6 input[type=number]{width:30%;min-width:200px}#seopress_cpt #tabs-6 #wrap-videos .video:first-child .remove-video{display:none}#seopress_cpt select{width:300px}#seopress_cpt #tabs-4 select{width:250px;display:inline}#seopress_cpt #tabs-4 #seopress_redirections_value_meta{width:calc(100% - 258px);float:right}#seopress_cpt #tabs-6{padding:0}#seopress_cpt #tabs-6 #wrap-videos .video .accordion-section-content,#seopress_cpt #tabs-6>p{padding:0 1.4em}#seopress_cpt #tabs-6 #wrap-videos .video .accordion-section-content{padding:0 1.4em 1em}#seopress_cpt #tabs-6 #wrap-videos .video{border-top:1px solid #eee}#seopress_cpt #tabs-6 #wrap-videos .video .accordion-section-title{border-left:none;border-right:none;font-size:1em;padding:1em 1.4em}#seopress_cpt #tabs-6 #wrap-videos .video:last-child .accordion-section-content,#seopress_cpt #tabs-6 #wrap-videos .video:last-child .accordion-section-title{border-bottom:1px solid #eee}#seopress_cpt #tabs-6 #wrap-videos .video .inside{padding:0}#seopress_cpt #tabs-4 #seopress_redirections_enabled,#seopress_cpt #tabs-5 #seopress_news_disabled,#seopress_cpt #tabs-5 #seopress_news_standout,#seopress_cpt #tabs-6 #seopress_video_disabled,#seopress_cpt #tabs-6 .family-friendly label,#seopress_cpt #tabs-6 .internal_video label{font-weight:400}#seopress_cpt #tabs-6 #wrap-videos .video:nth-child(odd){background:#fdfdfd}#seopress_content_analysis .advise,#seopress_cpt .advise,#seopress_pro_cpt .advise,.seopress-option .advise{margin:5px;display:block;color:red;font-style:italic}#seopress_cpt #tabs-6 #wrap-videos .video .advise{color:#555}#seopress_content_analysis .mandatory,#seopress_cpt .mandatory{color:#c00}#seopress_cpt .box-left{float:left;width:49%;margin-right:1%}#seopress_cpt .box-right{float:left;width:49%;margin-left:1%}#seopress_cpt #tabs-3 .box-left{width:44%}#seopress_cpt #tabs-3 .box-right{width:54%}@media only screen and (max-width:1200px){#seopress_cpt .box-left,#seopress_cpt .box-right{float:none;width:100%;margin:0}}@media only screen and (max-width:1500px){#seopress_cpt #tabs-3 .box-left,#seopress_cpt #tabs-3 .box-right{float:none;width:100%;margin:0}}#edittag #seopress_cpt #tabs-3 .box-left,#edittag #seopress_cpt #tabs-3 .box-right{float:none;width:100%;margin:0}#seopress-tabs .seopress_media_upload,#seopress_pro_cpt .seopress_media_upload{margin-top:.5rem}#seopress_cpt .google-snippet-preview{font-family:arial,sans-serif;word-break:break-all}#seopress_cpt .google-snippet-preview.mobile-preview .wrap-snippet{margin:0 0 10px 0;box-shadow:0 1px 6px rgba(32,33,36,.28);border-radius:8px;padding:12px 16px}#seopress_cpt .google-snippet-preview>p{word-break:normal}#seopress_cpt .google-snippet-preview .snippet-title,#seopress_cpt .google-snippet-preview .snippet-title-custom,#seopress_cpt .google-snippet-preview .snippet-title-default{color:#1a0dab;font-size:18px;font-weight:400;line-height:21.6px}#seopress_cpt .google-snippet-preview.mobile-preview .snippet-title,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-title-custom,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-title-default{font-size:16px;line-height:20px;margin-bottom:12px}#seopress_cpt .google-snippet-preview .snippet-permalink{color:#006621;font-size:14px;font-style:normal;font-weight:400;line-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#seopress_cpt .google-snippet-preview .wrap-snippet .wrap-m-icon-permalink,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-permalink{display:none}#seopress_cpt .google-snippet-preview.mobile-preview .wrap-m-icon-permalink{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:12px;display:flex}#seopress_cpt .google-snippet-preview.mobile-preview .wrap-m-icon-permalink .snippet-permalink{display:block;color:#3c4043;font-size:12px}#seopress_cpt .google-snippet-preview.mobile-preview .snippet-favicon{margin-right:12px;vertical-align:middle}#seopress_cpt .google-snippet-preview.mobile-preview .snippet-favicon img{width:16px;height:16px;max-width:inherit}#seopress_cpt .google-snippet-preview.mobile-preview .wrap-snippet .snippet-permalink:first-child{color:#3c4043;white-space:nowrap;font-size:12px;display:block}#seopress_cpt .google-snippet-preview .snippet-description,#seopress_cpt .google-snippet-preview .snippet-description-custom,#seopress_cpt .google-snippet-preview .snippet-description-default{color:#545454;font-size:14px;font-weight:400;line-height:18.2px;display:inline}#seopress_cpt .google-snippet-preview.mobile-preview .snippet-description,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-description-custom,#seopress_cpt .google-snippet-preview.mobile-preview .snippet-description-default{color:#3c4043;font-size:14px;line-height:20px}#seopress_cpt .google-snippet-preview .snippet-date{color:grey;display:inline}#seopress_cpt .facebook-snippet-box{color:#4b4f56;font-size:14px;width:524px}#seopress_cpt .facebook-snippet-box .notice,#seopress_cpt .twitter-snippet-box .notice{padding:10px 14px;margin:0 0 10px 0;box-sizing:border-box;width:100%}#seopress_cpt .facebook-snippet-box .notice span,#seopress_cpt .twitter-snippet-box .notice span{font-weight:700}#seopress_cpt .snippet-meta{display:flex;overflow:hidden;max-height:12px}#seopress_cpt .fb-by,#seopress_cpt .snippet-fb-site-name,#seopress_cpt .snippet-fb-url{color:#606770;font-size:12px;white-space:normal;line-height:11px;text-transform:uppercase;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis}#seopress_cpt .fb-sep{padding-left:5px;padding-right:5px;color:#606770;line-height:11px;font-size:12px}#seopress_cpt .facebook-snippet-box .facebook-snippet-text{border:1px solid #dadde1;background-color:#f2f3f5;padding:10px 12px}#seopress_cpt .facebook-snippet-box .title-desc{max-height:46px;overflow:hidden}#seopress_cpt .facebook-snippet-box .snippet-fb-title,#seopress_cpt .facebook-snippet-box .snippet-fb-title-custom,#seopress_cpt .facebook-snippet-box .snippet-fb-title-default{font-size:16px;line-height:20px;margin:3px 0 0;padding-top:2px;color:#1d2129;font-weight:700;overflow:hidden;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis;white-space:normal;word-break:break-word;max-height:22px}#seopress_cpt .facebook-snippet-box .snippet-fb-description,#seopress_cpt .facebook-snippet-box .snippet-fb-description-custom,#seopress_cpt .facebook-snippet-box .snippet-fb-description-default{color:#606770;font-size:14px;line-height:20px;word-break:break-word;font-family:Helvetica,Arial,sans-serif;max-height:80px;overflow:hidden;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis;white-space:normal;width:100%}#seopress_cpt .facebook-snippet-box img{display:block;height:274px;width:524px;object-fit:cover;background-color:#edeff0;text-align:center;border-bottom:none}#seopress_cpt .twitter-snippet-box{color:#4b4f56;font-size:14px;width:436px}#seopress_cpt .snippet-twitter-url{color:#8899a6;font-size:14px;white-space:normal;line-height:11px;text-transform:uppercase;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis}#seopress_cpt .twitter-snippet-box .twitter-snippet-text{border:1px solid #dadde1;background-color:#fff;padding:10px 12px;border-radius:0 0 10px 10px}#seopress_cpt .twitter-snippet-box .title-desc{max-height:46px;overflow:hidden}#seopress_cpt .twitter-snippet-box .snippet-twitter-img,#seopress_cpt .twitter-snippet-box .snippet-twitter-img-custom,#seopress_cpt .twitter-snippet-box .snippet-twitter-img-default{border-radius:10px 10px 0 0;overflow:hidden}#seopress_cpt .twitter-snippet-box .snippet-twitter-title,#seopress_cpt .twitter-snippet-box .snippet-twitter-title-custom,#seopress_cpt .twitter-snippet-box .snippet-twitter-title-default{font-size:1em;line-height:20px;margin-bottom:5px;max-height:1.3em;color:#000;font-weight:700;overflow:hidden;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis;white-space:normal;word-break:break-word}#seopress_cpt .twitter-snippet-box .snippet-twitter-description,#seopress_cpt .twitter-snippet-box .snippet-twitter-description-custom,#seopress_cpt .twitter-snippet-box .snippet-twitter-description-default{color:#000;font-size:14px;line-height:20px;word-break:break-word;font-family:Helvetica,Arial,sans-serif;max-height:80px;overflow:hidden;-webkit-box-orient:vertical;display:-webkit-box;text-overflow:ellipsis;white-space:normal;width:100%}#seopress_cpt .twitter-snippet-box img{display:block;height:200px;width:436px;object-fit:cover;background-color:#edeff0;text-align:center;border-bottom:none}#seopress_cpt .wrap-seopress-counters,#seopress_pro_cpt .wrap-seopress-counters{text-align:right;background:#e9ecef;padding:2px 5px;display:flex;font-size:12px;justify-content:flex-end;border-radius:0 0 .25rem .25rem}#seopress_cpt .sp-progress,#seopress_pro_cpt .sp-progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem .25rem 0 0}#seopress_cpt .sp-progress-bar,#seopress_pro_cpt .sp-progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#0085ba;transition:width .6s ease}#seopress_cpt #seopress_titles_desc_counters,#seopress_cpt #seopress_titles_title_counters,#seopress_pro_cpt #seopress_rich_snippets_articles_counters,#seopress_pro_cpt #seopress_rich_snippets_courses_counters{display:inline;margin-right:5px}#seopress_cpt #seopress_titles_desc_counters_val,#seopress_cpt #seopress_titles_title_counters_val,#seopress_pro_cpt #seopress_rich_snippets_articles_counters_val,#seopress_pro_cpt #seopress_rich_snippets_courses_counters_val{display:inline;font-weight:700}#term-seopress #seopress_cpt{width:95%}.fixed .column-seopress_ps,.fixed .column-seopress_score,.fixed .column-seopress_w3c,.fixed .column-seopress_words{width:6%}.fixed .column-seopress_nofollow,.fixed .column-seopress_noindex{width:8%}@media only screen and (max-width:1200px){.fixed .column-seopress_nofollow,.fixed .column-seopress_noindex,.fixed .column-seopress_ps,.fixed .column-seopress_score,.fixed .column-seopress_w3c,.fixed .column-seopress_words{width:10%}}#seopress_cpt .ui-tabs{position:relative;padding:0;border:none;font-family:inherit;font-size:inherit;display:inline-block;width:100%}#seopress_cpt .ui-tabs .ui-tabs-nav li{list-style:none;display:inline-block;position:relative;top:2px;padding:0 5px;white-space:nowrap;margin:0;border:none;background:0 0}#seopress_cpt .ui-tabs .ui-tabs-nav li a{display:inline-block;padding:5px 10px}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-nav li a,#seopress_cpt .ui-tabs-vertical .ui-tabs-nav li a{display:block}#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:2px;padding-bottom:1px}#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-state-disabled a,#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-tabs-active a,#seopress_cpt .ui-tabs .ui-tabs-nav li.ui-tabs-loading a{color:#191e23;font-weight:700}#seopress_cpt .ui-tabs .ui-tabs-nav li a,#seopress_cpt .ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;color:#191e23;text-decoration:none;height:40px;line-height:40px}#seopress_cpt .ui-tabs-vertical{width:55em}#seopress_cpt .ui-tabs-vertical .ui-tabs-nav{padding:.2em .1em .2em .2em;float:left;width:12em}#seopress_cpt .ui-tabs-vertical .ui-tabs-nav li{clear:left;width:100%;border-bottom-width:1px!important;border-right-width:0!important;margin:0 -1px .2em 0}#seopress_cpt .ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active{padding-bottom:0;padding-right:.1em;border-right-width:1px}#seopress_cpt .ui-tabs-vertical .ui-tabs-panel{padding:1em;float:right;width:40em}#seopress_cpt .ui-tabs .ui-tabs-nav li a .dashicons{margin-right:2px}#tab-panel-seopress_titles_help_tab li span{font-weight:700;margin-right:10px}#seopress_content_analysis .dashicons-no-alt,#seopress_content_analysis .dashicons-yes,#seopress_pro_cpt .dashicons-no-alt,#seopress_pro_cpt .dashicons-yes{color:#fff;background:#12bd10;border-radius:50px;margin-right:10px}#seopress_content_analysis .dashicons-no-alt,#seopress_pro_cpt .dashicons-no-alt{background:#e25950}body.seopress-styles{background:#f8fafd}#seopress-admin-tabs.ui-tabs{position:relative;padding:.2em;border:none;font-family:inherit;font-size:inherit}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:-1px .2em 0 0;padding:0;white-space:nowrap;border:none;background:0 0}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li a{float:left;padding:.38em 1em .75rem;outline:0;border-bottom:2px solid #fff}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li.ui-state-disabled a,#seopress-admin-tabs.ui-tabs .ui-tabs-nav li.ui-tabs-active a,#seopress-admin-tabs.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text;border-bottom:2px solid #23282d;color:#23282d}#seopress-admin-tabs.ui-tabs .ui-tabs-nav li a,#seopress-admin-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer;color:#0073aa;text-decoration:none}#seopress-admin-tabs.ui-tabs-vertical{width:55em}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-nav{padding:.2em .1em .2em .2em;float:left;width:12em}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-nav li{clear:left;width:100%;border-bottom-width:1px!important;border-right-width:0!important;margin:0 -1px .2em 0}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-nav li.ui-tabs-active{padding-bottom:0;padding-right:.1em;border-right-width:1px}#seopress-admin-tabs.ui-tabs-vertical .ui-tabs-panel{padding:1em;float:right;width:40em}.seopress-styles .seopress-option{margin:10px auto 0;max-width:90%;padding:1rem;background:#fff;box-shadow:0 15px 35px rgba(50,50,93,.1),0 5px 15px rgba(0,0,0,.1);border-radius:4px}.seopress-styles .seopress-option h1{font-size:16px;font-weight:700;color:#3297d3;text-transform:uppercase;z-index:100;border-bottom:1px solid #eee;padding-bottom:20px}.seopress-styles .seopress-option h1 .dashicons,.seopress-styles .seopress-option h2 .dashicons{margin:0 10px;font-size:40px;width:40px;height:40px;vertical-align:middle}.seopress-styles .seopress-option .link-archive{font-size:14px}.seopress-styles .seopress-option .link-archive .dashicons{font-size:18px;width:20px;height:20px;margin:inherit}.seopress-styles .seopress-option h1>.dashicons{font-size:30px;width:30px;height:30px;background:#c4f0ff;border-radius:6px;padding:10px;margin-left:10px;color:#0085ba}.seopress-styles .seopress-option .metabox-holder h2 .dashicons{font-size:16px}.seopress-option h1 .feature-state .dashicons{font-size:16px;width:16px;height:16px;vertical-align:middle;margin:0 10px 0 0}.seopress-styles .wrap{margin:20px 0 0 0;display:flex;position:relative}@media only screen and (max-width:1024px){.seopress-styles .wrap{display:inline-block;width:100%}}#seopress-admin-tabs.wrap{display:block;box-shadow:0 7px 14px 0 rgba(60,66,87,.12),0 3px 6px 0 rgba(0,0,0,.12);width:64rem;margin:0 auto}.seopress-styles .seopress-option .submit{background:#fff;text-align:center;border-top:1px solid #f1f1f1;padding-top:20px;padding-bottom:20px;margin:0}.seopress-styles .seopress-option #seopress-aio-migrate,.seopress-styles .seopress-option #seopress-rk-migrate,.seopress-styles .seopress-option #seopress-seo-framework-migrate,.seopress-styles .seopress-option #seopress-squirrly-migrate,.seopress-styles .seopress-option #seopress-yoast-migrate,.seopress-styles .seopress-option #submit{color:#fff;text-decoration:none;border:none;border-radius:4px;padding-right:20px;padding-left:20px;line-height:34px;text-transform:uppercase;min-height:34px;transition:all .3s linear;text-shadow:none;box-shadow:0 7px 14px rgba(50,50,93,.1),0 3px 6px rgba(0,0,0,.1);margin-right:15px;background:#6a7c94;position:relative;height:auto;z-index:10}.seopress-styles .seopress-option #seopress-aio-migrate:hover,.seopress-styles .seopress-option #seopress-rk-migrate:hover,.seopress-styles .seopress-option #seopress-seo-framework-migrate:hover,.seopress-styles .seopress-option #seopress-squirrly-migrate:hover,.seopress-styles .seopress-option #seopress-yoast-migrate:hover,.seopress-styles .seopress-option #submit:hover{text-decoration:none;color:#fff;background:#232323}.seopress-styles #wpcontent{padding-left:0}.seopress-styles pre{color:#42b72a;background:#f5f6f7;font-family:Menlo,Monaco,Andale Mono,Courier New,monospace;padding:7px}.seopress-styles #seopress-navbar{padding:10px .5rem;height:56px;margin:0 auto;width:64rem;box-sizing:border-box;position:relative}#seopress-header{margin:0 auto;position:relative;width:100%}#seopress-header #seopress-admin h1{line-height:40px;margin:0;display:inline-block;height:40px;width:40px;background-size:100%;background-repeat:no-repeat}#seopress-header #seopress-admin h1::before{font-size:14px;line-height:40px;position:absolute;border-radius:6px;font-weight:400;color:#fff;width:40px;height:40px;text-align:center;background:#3a4afb;background:-moz-linear-gradient(45deg,#3a4afb 0,#47bea5 100%);background:-webkit-linear-gradient(45deg,#3a4afb 0,#47bea5 100%);background:linear-gradient(45deg,#3a4afb 0,#47bea5 100%)}#seopress-header #seopress-admin h1:hover{cursor:pointer}#seopress-header #seopress-admin h1>a{text-decoration:none;color:inherit}#seopress-header #seopress-admin .seopress-quick-access{background:#fff;box-shadow:0 50px 100px rgba(50,50,93,.1),0 15px 35px rgba(50,50,93,.2),0 5px 15px rgba(0,0,0,.1);border-radius:4px;overflow:hidden;position:relative;font-size:17px;line-height:40px;white-space:nowrap;transform:rotate3d(1,1,0,-15deg);transform-origin:100% 0;opacity:0;will-change:transform,opacity;transition-property:transform,opacity;transition-duration:.25s;z-index:300;padding:0;display:block;width:64rem;top:0;visibility:hidden;cursor:auto;left:-.5rem}#seopress-header #seopress-admin h1:hover .seopress-quick-access{transform:none;opacity:1;pointer-events:auto;visibility:visible}#seopress-header #seopress-admin .seopress-quick-access>ul{padding:20px;margin:0;float:left;width:100%;box-sizing:border-box}#seopress-header #seopress-admin h1 .seopress-quick-access li{text-decoration:none;display:inline-block;width:50%;margin:0;float:left;padding:10px 0}#seopress-header #seopress-admin h1 .seopress-quick-access li .dashicons{vertical-align:middle;background:#b7e1f3;border-radius:50%;padding:5px;margin-right:15px}#seopress-header #seopress-admin h1 .seopress-quick-access li a{text-decoration:none;font-size:15px;line-height:30px;text-transform:uppercase;display:block;width:100%;transition:all .3s linear;color:#3297d3}#seopress-header #seopress-admin h1 .seopress-quick-access li a:hover{color:#647a88}#seopress-header #seopress-admin h1 .seopress-info-version{position:relative;left:50px;top:0;font-size:14px;width:100px;display:block}#seopress-header #seopress-admin .wpc-info-version{font-size:14px;left:310px;position:absolute;text-indent:0;top:85px}#seopress-header #seopress-notice{float:right;line-height:40px}#seopress-header #seopress-notice p{font-size:16px}#seopress-header #seopress-notice .dashicons{color:#6f8096;text-decoration:none;line-height:40px}#seopress-header #seopress-notice div.small{font-size:13px;display:inline}#seopress-footer-credits{font-style:italic}#seopress-footer-credits .wporg-ratings{display:inline}#seopress-footer-credits .wporg-ratings a{text-decoration:none}.seopress-option .seopress-settings{float:left;max-width:750px;width:100%}.seopress-option #seopress-edd-license-btn,.seopress-option #seopress-refresh{float:left}.wp-admin-ui_page_seopress-import-export .postbox{margin-right:20px}.seopress-option #side-sortables .accordion-section-content{padding:0}.seopress-option .seopress-settings label{margin:0 0 0 10px}.wrap-seopress-tab-content{position:relative;display:block;width:100%;max-width:64rem;margin:0 auto;box-sizing:border-box}#seopress-admin-tabs .seopress-tab{padding:1.5rem;visibility:hidden;overflow:hidden;opacity:0;transition:all .2s ease;transform:translateX(-15px);position:absolute;top:0;box-sizing:border-box}#seopress-admin-tabs .seopress-tab.active{visibility:visible;overflow:inherit;opacity:1;transform:translateX(0);display:inherit;position:relative}#seopress-tabs .seopress-tab{padding:0 1.5rem;width:calc(100% - 230px);display:none}@media only screen and (max-width:1024px){#seopress-tabs .seopress-tab{width:100%}}#seopress-tabs .seopress-tab.active{display:inline-block;border-left:1px solid #eee}@media only screen and (max-width:1024px){#seopress-tabs .seopress-tab.active{width:100%;padding:0;border-left:none;border-top:1px solid #eee}}.seopress-option input[type=password],.seopress-option input[type=text],.seopress-option textarea{min-width:485px}@media only screen and (max-width:1024px){.seopress-option input[type=password],.seopress-option input[type=text],.seopress-option textarea{min-width:inherit;width:100%}}#seopress_htaccess_file{width:100%}.seopress-option textarea{min-height:100px}.seopress-option #side-sortables .highlight{border:1px dashed #ccc;display:block;width:382px;height:40px;background:0 0}.seopress-option #side-sortables .accordion-section{margin-bottom:9px;width:382px}.seopress-option #side-sortables .accordion-section h3{cursor:move;border:1px solid #e5e5e5;background:#fafafa}.seopress-option #side-sortables .accordion-section .inside{padding:10px 10px 24px;border-width:0 1px 1px;border-style:solid;box-shadow:0 1px 1px rgba(0,0,0,.04);border-color:#e5e5e5;display:inline-block;width:calc(100% - 22px);height:100%}.seopress-option #side-sortables .accordion-section .inside ul{padding-left:10px;margin-bottom:0;padding-top:2px;padding-bottom:2px}.seopress-option #side-sortables .accordion-section .inside ul li{border-left:2px solid #ccc;padding-left:10px;margin-bottom:10px}.seopress-option #side-sortables .accordion-section .inside ul li:first-child{border-bottom:1px dotted #e5e5e5;border-left:0;padding-bottom:10px;font-weight:700;margin-left:-15px;margin-bottom:10px}.seopress-notice #message{margin:5px 10px 2px 0}#seopress-notice a{position:relative;text-decoration:none}#seopress-notice a .tooltip{white-space:pre;z-index:200;padding:2px 5px;font-weight:500;font-size:12px;color:#aab7c4;background:#fff;box-shadow:0 1px 2px 0 rgba(49,49,93,.1),0 0 1px 0 rgba(0,0,0,.1);border-radius:2px;position:absolute;opacity:0;top:30px;transition:opacity .2s ease;visibility:hidden;line-height:20px;left:-100%;overflow:hidden}#seopress-notice a:hover .tooltip{opacity:1;visibility:visible}.seopress-page-list{margin:1.5rem auto}.seopress-option .dashicons,.seopress-page-list .dashicons{vertical-align:middle;margin-right:5px;color:#6f8096}#seopress-admin-tabs .ui-tabs-nav,#seopress-notifications-center,.seopress-get-started,.seopress-page-list .seopress-feature,.seopress-useful-tools{margin:0 auto 20px;max-width:64rem;padding:2rem;width:100%;border-radius:0 0 4px 4px;box-sizing:border-box}.seopress-get-started{margin-top:20px;background:#fff url(../img/bg-hero-support.svg) no-repeat 95% 50%/contain;position:relative;box-sizing:border-box;box-shadow:0 7px 14px 0 rgba(60,66,87,.12),0 3px 6px 0 rgba(0,0,0,.12)}.seopress-get-started .inside{max-width:calc(100% - 380px)}.seopress-get-started .preheader{text-transform:uppercase;font-size:.8rem;font-weight:600}.seopress-get-started h2{font-size:1.85em;margin:15px 0 0 0;font-weight:400}.seopress-get-started p{margin-bottom:20px}.seopress-get-started a .dashicons{vertical-align:middle;text-decoration:none;color:#6a7c94}.seopress-get-started a.button-primary .dashicons{color:#fff}.seopress-get-started a.btn-link .dashicons{margin-right:5px}.seopress-get-started a.btn-link{margin:0 0 0 10px}#seopress-notifications-center,.seopress-useful-tools{background:#fff;padding:0}.seopress-page-list .seopress-feature{padding:0;position:relative;overflow:hidden;transition-duration:.15s;display:flex;margin:0;background:#fff;box-shadow:0 7px 14px 0 rgba(60,66,87,.12),0 3px 6px 0 rgba(0,0,0,.12);flex-wrap:wrap;border-radius:4px;width:100%;height:100%}.seopress-page-list .seopress-feature p{color:#6b7c93;font-size:14px;margin-bottom:30px}#seopress-notifications-center{margin-top:0}#seopress-admin-tabs .ui-tabs-nav{display:flex;padding-top:1rem;padding-bottom:0}.seopress-page-list .seopress-feature .img-tool{height:50px;width:50px;background:#c4f0ff;position:relative;border-radius:6px}.seopress-page-list .seopress-feature .img-tool .dashicons{color:#217ab7;font-size:30px;text-align:left;vertical-align:middle;width:100%;height:100%;position:absolute;top:calc(50% - 15px);left:calc(50% - 15px);margin:0}.seopress-page-list .seopress-feature .inner{margin:0;display:inline-block;padding:1.5rem;width:100%;height:100%;box-sizing:border-box}.seopress-page-list .seopress-feature h3{margin:1rem 0 0 0;font-size:16px;font-weight:700;color:#3297d3;text-transform:uppercase}.seopress-page-list .seopress-feature h3 .dashicons{font-size:16px;margin-left:5px;vertical-align:middle}#seopress-content .seopress-page-list .seopress-feature a,#seopress-notifications-center .seopress-alert .button-primary,.seopress-get-started .button-primary,.seopress-option .seopress-feature a,.seopress-useful-tools .widget .button-primary{color:#fff;text-decoration:none;border:none;border-radius:4px;padding-right:20px;padding-left:20px;line-height:34px;text-transform:uppercase;min-height:34px;transition:all .3s linear;text-shadow:none;box-shadow:0 7px 14px rgba(50,50,93,.1),0 3px 6px rgba(0,0,0,.1);background:#6a7c94;position:relative;height:auto;display:flex;flex-wrap:wrap}#seopress-content .seopress-page-list .seopress-feature a.button-secondary{padding-left:30px}#seopress-content .seopress-page-list .seopress-feature a.button-secondary::before,#seopress-notifications-center .seopress-alert .button-primary::after{content:"\f111";font-family:Dashicons;position:absolute;left:10px;top:1px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-size:16px}#seopress-content .seopress-page-list .wrap-btn{display:inline-flex;margin-bottom:2rem;flex-direction:column}#seopress-content .seopress-page-list .seopress-feature a.view-redirects,#seopress-notifications-center .seopress-alert .button-primary,.seopress-get-started .button,.seopress-option .button{color:#6a7c94;background:#fff;font-weight:500;transition:all .3s linear;text-shadow:none;text-transform:uppercase;padding-right:20px;padding-left:20px;line-height:34px;min-height:34px;margin:10px 0;border-radius:4px;box-shadow:transparent 0 0 0 0,transparent 0 0 0 0,rgba(0,0,0,.12) 0 1px 1px 0,rgba(60,66,87,.16) 0 0 0 1px,transparent 0 0 0 0,transparent 0 0 0 0,rgba(60,66,87,.12) 0 2px 5px 0;vertical-align:baseline;display:inline-flex;align-items:center;border:none;margin-right:.5rem;cursor:pointer}.seopress-get-started .button{color:#fff;background:#6259e6;box-shadow:none}.seopress-option .wp-picker-container button{box-shadow:none;border:1px solid #0071a1;border-radius:3px;background:#f3f5f6;text-transform:none}.seopress-option .wp-picker-container input[type=text].wp-color-picker{min-width:inherit}.seopress-option .wp-picker-container .wp-picker-clear{box-shadow:none;text-transform:none;border-radius:0;background:0 0}.seopress-option .wp-picker-container .wp-picker-clear:hover{background:0 0;text-decoration:currentColor;color:inherit}.seopress-option .button .dashicons{font-size:16px}#seopress-content .seopress-page-list .seopress-feature a.view-redirects{padding-left:30px}#seopress-notifications-center .seopress-alert .button-primary::after{content:"\f344";left:inherit;right:10px}#seopress-content .seopress-page-list .seopress-feature a.view-redirects::before{content:"\f177"}#seopress-content .seopress-page-list .seopress-feature a:hover,#seopress-notifications-center .seopress-alert .button-primary:hover,.seopress-get-started .button-primary:hover,.seopress-option .button:hover,.seopress-option .seopress-feature a:hover,.seopress-useful-tools .widget .button-primary:hover{text-decoration:none;color:#fff;background:#232323}.seopress-get-started .button .dashicons{transition:all .3s linear}.seopress-get-started .button:hover .dashicons{color:#fff}#seopress-content .seopress-page-list .seopress-feature .seopress-doc:focus,#seopress-content .seopress-page-list .seopress-feature a:focus,#seopress-content .seopress-page-list .seopress-feature a:focus.button-secondary,#seopress-content a:focus,#seopress-notifications-center .seopress-alert .button-primary:focus,.seopress-option #seopress-tabs .seopress-doc:focus,.seopress-option .seopress-feature a:focus,.seopress-styles .seopress-option #seopress-aio-migrate:focus,.seopress-styles .seopress-option #seopress-yoast-migrate:focus,.seopress-styles .seopress-option #submit:focus,.seopress-useful-tools .widget .button-primary:focus{box-shadow:0 1px 0 #0073aa,0 0 2px 1px #33b3db;background:#008ec2;border-color:#006799;color:#fff}#seopress-admin-tabs .nav-tab-wrapper a.nav-tab-active:focus{color:inherit}#seopress-notifications-center .seopress-alert .button-primary{margin:5px 0;padding-right:30px}#seopress-notifications-center h2,.seopress-useful-tools h2{margin:5px 0 15px 5px;display:inline-block;width:100%}#seopress-notifications-center .dashicons,.seopress-useful-tools .dashicons{margin-right:10px}#seopress-notifications-center .seopress-alert{padding:1.5rem 2rem 1.2rem 1rem;border-bottom:1px solid #e6ebf1;width:calc(100% - 3rem);flex:1 1 auto;position:relative;transition:all 150ms ease;align-items:center;display:flex;justify-content:space-between}#seopress-notifications-center .seopress-alert:last-child{margin-bottom:0;border-bottom:none}#seopress-notifications-center .seopress-alert:hover{cursor:default}#seopress-notifications-center .dashicons{display:flex;align-self:normal;width:48px;height:48px;color:#d7dade;font-size:48px;padding:0 1rem}#seopress-notifications-center .seopress-alert p{margin:0}#seopress-notifications-center .notice-left{flex:1}#seopress-notifications-center .notice-left>p:first-child{color:#1a1f36;font-weight:500}#seopress-notifications-center .notice-right{padding:1rem 0 0 0;display:flex}#seopress-notifications-center .seopress-alert.impact::after{content:"";width:10px;height:10px;border-radius:50px;position:absolute;right:1rem;top:1rem}#seopress-notifications-center .seopress-alert.impact.low::after{background:#ffde24}#seopress-notifications-center .seopress-alert.impact.medium::after{background:#e39f48}#seopress-notifications-center .seopress-alert.impact.high::after{background:#e25950}#seopress-notifications-center .seopress-alert.impact.info::after{background:#0085ba}#seopress-notifications-center .seopress-alert.dashicons{color:#6f8096}#seopress-notifications-center .dashicons.remove-notice,.seopress-get-started .remove-notice{position:absolute;right:0;color:#6b7c93;font-size:20px;height:30px;width:30px;vertical-align:middle;top:1.2rem;line-height:30px;padding:5px;transition:all .3s linear;margin:0;display:block}.seopress-get-started .remove-notice{top:10px;right:10px}#seopress-notifications-center .dashicons.remove-notice:hover,.seopress-get-started .remove-notice:hover{color:#1a1f36;cursor:pointer}#seopress-content .seopress-page-list .seopress-feature .seopress-doc,.seopress-option #seopress-tabs .seopress-doc{background:0 0;padding:0;text-decoration:none;color:inherit;box-shadow:none;position:absolute;right:.5rem;top:1rem}#seopress-content .seopress-page-list .seopress-feature .seopress-doc:hover,.seopress-option #seopress-tabs .seopress-doc:hover{color:#747474;background:0 0}#seopress-content .seopress-page-list .seopress-feature .seopress-doc:hover .dashicons{color:#232323}.seopress-option .seopress-table{background:#fff;border:1px solid #ccc}.seopress-option .seopress-table th{padding:15px 10px;vertical-align:middle}.wp-admin-ui_page_seopress-roles .seopress-option .seopress-table th{min-width:200px}.seopress-option .seopress-table .seopress-settings-section{background:#f1f1f1}.seopress-option .seopress-table .seopress-table-head .seopress-feature{border-bottom:1px solid #ccc;font-weight:700;background:#f1f1f1}#seopress-content .feature-state,.seopress-option .feature-state{font-style:italic;font-size:10px;display:inline-block;background:rgba(0,140,135,.1);padding:2px 10px;border-radius:25px;color:#444;font-weight:400;text-transform:none;-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial}@media only screen and (max-width:768px){#seopress-content .feature-state,.seopress-option .feature-state{display:none}}.seopress-option .seopress_wrap_single_cpt .feature-state,.seopress-option .seopress_wrap_tax .feature-state{padding:2px 12px;margin:0 0 .5rem .5rem}.seopress-option #tab_seopress_titles_archives h2,.seopress-option #tab_seopress_titles_single h2,.seopress-option #tab_seopress_titles_tax h2{margin:2em 0 1em 0;border-top:1px solid #eee;padding:1em 0 0 0}.seopress-option #tab_seopress_titles_archives h2:first-child,.seopress-option #tab_seopress_titles_single h2:first-child,.seopress-option #tab_seopress_titles_tax h2:first-child{border-top:none;margin:0 0 1em 0}#seopress_cpt .tag-title,#seopress_pro_cpt .tag-title,.seopress-button,.seopress-option .tag-title{cursor:pointer;font-weight:500;border-radius:4px;transition:all .3s linear}#seopress-content .feature-state-on,#seopress-content .feature-state.feature-state-on,.seopress-option .feature-state-on,.seopress-option .feature-state.feature-state-on{display:inline-block}#seopress-content .feature-state-off,.seopress-option .feature-state-off{display:none}.seopress-option .postbox .inside li{list-style:square inside;padding-left:5px}#tab_seopress_page_speed .inside li{list-style:none;padding-left:0;word-break:break-word}.seopress-option .log{margin:0;text-transform:uppercase;display:inline-block;vertical-align:middle;padding:5px;color:#13bf11;font-style:italic}.seopress-option input[type=text].seopress-admin-menu-input{min-width:inherit;width:100%}.seopress_page_seopress-import-export .postbox{width:calc(100% - 20px)}#seopress_cpt .wrap-tags,#seopress_pro_cpt .wrap-tags,.seopress-option .wrap-tags{position:relative;display:inline-block;width:100%;margin-bottom:10px}#seopress_cpt .tag-title,#seopress_pro_cpt .tag-title,.seopress-option .tag-title{padding:4px 8px;position:relative;top:5px;left:0;font-size:11px;float:left;margin-right:5px;user-select:none;margin-bottom:5px;background:#fff;color:#6b7c93;box-shadow:0 0 0 .5px rgba(50,50,93,.17),0 2px 5px 0 rgba(50,50,93,.12),0 3px 9px 0 rgba(50,50,93,.08),0 1px 1.5px 0 rgba(0,0,0,.08),0 1px 2px 0 rgba(0,0,0,.08)}#seopress_cpt .tag-title:active,#seopress_cpt .tag-title:focus,#seopress_cpt .tag-title:hover,#seopress_pro_cpt .tag-title:active,#seopress_pro_cpt .tag-title:focus,#seopress_pro_cpt .tag-title:hover,.seopress-option .tag-title:active,.seopress-option .tag-title:focus,.seopress-option .tag-title:hover{background:#232323;color:#fff;user-select:none}#seopress_cpt .tag-title .dashicons,#seopress_pro_cpt .tag-title .dashicons,.seopress-option .tag-title .dashicons{padding:0;height:16px;width:16px;font-size:16px;margin-right:5px;vertical-align:middle}.seopress-button{text-transform:uppercase;background:#fff;border-color:#c8d7e1;border-style:solid;border-width:1px 1px 2px;color:#2e4453;display:inline-block;margin:0;outline:0;overflow:hidden;text-overflow:ellipsis;text-decoration:none;vertical-align:top;box-sizing:border-box;font-size:14px;line-height:20px;padding:6px 8px 6px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.seopress-button:hover{border-color:#a8bece;color:#00a0d2}.seopress-button .dashicons{vertical-align:middle}#seopress-content #tab_seopress_seo_tools.seopress-useful-tools .widget{border-right:1px solid #e6ebf1;margin:0;padding:0 20px;width:calc(50% - 2px);box-sizing:border-box;display:inline-block;vertical-align:top}#seopress-content #tab_seopress_seo_tools.seopress-useful-tools .widget:first-child{width:100%;display:block;clear:both;border-right:none;border-bottom:1px solid #e6ebf1;padding-bottom:20px;margin-bottom:20px}#seopress-content #tab_seopress_seo_tools.seopress-useful-tools .widget:last-child{border-right:none}#seopress-content .seopress-useful-tools .widget-reverse ul{background:#fff}#seopress-content .seopress-useful-tools .widget-reverse li{padding:10px;margin:0;border-bottom:1px solid #e6ebf1}#seopress-content .seopress-useful-tools .widget-reverse li:hover{background:#f5f7fa}#seopress-content .seopress-useful-tools .widget-title{text-transform:uppercase;margin:0 0 10px;font-size:13px;padding:10px 0;color:#24b47e}#seopress-content .seopress-reverse label,#seopress-content .seopress-useful-tools .widget-whois ul li span{font-weight:700}#seopress-content #seopress-reverse-url{width:100%;margin:10px 0}#seopress-content .widget-reverse p{margin:0}.post-type-seopress_backlinks .wp-list-table .column-seopress_backlinks_url{width:35%}.post-type-seopress_backlinks .wp-list-table .column-seopress_backlinks_anchor_text{width:20%}.seopress-styles #screen-meta{margin:0;position:relative;background-color:#fff;border-bottom:0 solid #f2f2f2;border-top:none;-webkit-box-shadow:0 0 0 1px rgba(136,152,170,.1),0 15px 35px 0 rgba(49,49,93,.1),0 5px 15px 0 rgba(0,0,0,.08);box-shadow:0 0 0 1px rgba(136,152,170,.1),0 15px 35px 0 rgba(49,49,93,.1),0 5px 15px 0 rgba(0,0,0,.08);top:0}.seopress-styles #contextual-help-link-wrap,.seopress-styles #screen-options-link-wrap{float:right;height:28px;margin:0 0 0 6px;border:1px solid #f2f2f2;border-top:none;background:#fff;-webkit-box-shadow:0 0 0 1px rgba(136,152,170,.1),0 15px 35px 0 rgba(49,49,93,.1),0 5px 15px 0 rgba(0,0,0,.08);box-shadow:0 0 0 1px rgba(136,152,170,.1),0 15px 35px 0 rgba(49,49,93,.1),0 5px 15px 0 rgba(0,0,0,.08)}.seopress-styles #screen-meta-links .show-settings{box-shadow:none}.seopress-styles #screen-meta-links .screen-meta-toggle{position:relative;top:0;z-index:2000}.seopress-styles #contextual-help-back{background:#f8fafd}.seopress-styles .contextual-help-tabs .active{border-left:2px solid #3297d3;background:#f8fafd}#seopress-content input.toggle,#seopress_cpt input.toggle,.seopress-option input.toggle{max-height:0;max-width:0;opacity:0;position:relative}.seopress-feature input.toggle{display:block}.wrap-toggle-preview{position:relative}.wrap-toggle-preview p{font-weight:700;margin:0 0 1rem 0}#seopress_cpt input.toggle,.seopress_wrap_single_cpt input.toggle,.seopress_wrap_tax input.toggle{margin:0;border:none;min-width:0}#seopress_content_analysis span.label,#seopress_cpt span.label{outline:0;color:#fff;box-shadow:none;background:#555d66;padding:2px 4px;border-radius:4px;font-weight:700}#seopress-content input.toggle+label,#seopress_cpt #tabs-1 input.toggle+label,.seopress-option input.toggle+label{display:inline-block;position:relative;box-shadow:inset 0 0 0 1px #d5d5d5;text-indent:-5000px;height:20px;width:40px;border-radius:15px}#seopress_cpt #tabs-1 input.toggle+label{margin:0}.wrap-toggle-checkboxes input.toggle+label{float:left;margin-right:10px}#seopress-content input.toggle+label:before,#seopress_cpt input.toggle+label:before,.seopress-option input.toggle+label:before{content:"";position:absolute;display:block;height:20px;width:30px;top:0;left:0;border-radius:15px;background:rgba(19,191,17,0);-moz-transition:.25s ease-in-out;-webkit-transition:.25s ease-in-out;transition:.25s ease-in-out}#seopress-content input.toggle+label:after,#seopress_cpt input.toggle+label:after,.seopress-option input.toggle+label:after{content:"";position:absolute;display:block;height:20px;width:20px;top:0;left:0;border-radius:15px;background:#fff;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2),0 2px 4px rgba(0,0,0,.2);-moz-transition:.25s ease-in-out;-webkit-transition:.25s ease-in-out;transition:.25s ease-in-out}#seopress_cpt input.toggle+label,#seopress_cpt input.toggle+label:before,.seopress_wrap_single_cpt input.toggle+label,.seopress_wrap_single_cpt input.toggle+label:before,.seopress_wrap_tax input.toggle+label,.seopress_wrap_tax input.toggle+label:before{width:40px;height:20px}#seopress_cpt input.toggle+label:after,.seopress_wrap_single_cpt input.toggle+label:after,.seopress_wrap_tax input.toggle+label:after{width:20px;height:20px}#seopress-content input.toggle[data-toggle="1"]+label:before,#seopress_cpt input.toggle[data-toggle="1"]+label:before,.seopress-option input.toggle[data-toggle="1"]+label:before{width:40px;background:#3197d3}#seopress_cpt input.toggle[data-toggle="1"]+label:before,.seopress_wrap_single_cpt input.toggle[data-toggle="1"]+label:before,.seopress_wrap_tax input.toggle[data-toggle="1"]+label:before{width:40px;background:#3197d3}#seopress-content input.toggle[data-toggle="1"]+label:after,#seopress_cpt input.toggle[data-toggle="1"]+label:after,.seopress-option input.toggle[data-toggle="1"]+label:after{left:20px;box-shadow:inset 0 0 0 1px #3197d3,0 2px 4px rgba(0,0,0,.2)}#seopress_cpt input.toggle[data-toggle="1"]+label:after,.seopress_wrap_single_cpt input.toggle[data-toggle="1"]+label:after,.seopress_wrap_tax input.toggle[data-toggle="1"]+label:after{box-shadow:inset 0 0 0 1px #3197d3,0 2px 4px rgba(0,0,0,.2)}#seopress-content .seopress-page-list{position:relative;display:grid;max-width:64rem;grid-gap:20px 20px;grid-template-columns:repeat(3,1fr)}#seopress-notice-save{position:fixed;color:#fff;padding:15px 40px;font-size:.9rem;text-transform:uppercase;text-align:center;border-radius:0;background:rgba(74,184,102,.9);bottom:0;right:0;z-index:500;width:100%;font-weight:700}#seopress-notice-save .dashicons{color:#fff}.seopress_page_seopress-pro-page #wpcontent{background:#f4f7fa}.seopress-option .wrap div.nav-tab-wrapper{margin:0 0 0 -26px;padding:0 0 0 10px;line-height:inherit;width:230px;z-index:95;font-weight:400;display:block;border-bottom:none}@media only screen and (max-width:1024px){.seopress-option .wrap div.nav-tab-wrapper{width:100%;margin:0;padding:0}}#seopress-admin-tabs.wrap div.nav-tab-wrapper{margin:20px auto 0;max-width:64rem;width:100%;border-bottom:1px solid #e6ebf1;padding:0;line-height:inherit;position:-webkit-sticky;position:sticky;background:#f5f7fa;z-index:100;top:31px;border-radius:4px 4px 0 0;font-weight:400;overflow:hidden;display:flex;align-items:center;justify-content:space-between;box-sizing:border-box}#seopress-admin-tabs #tab_seopress_notifications.seopress-tab{background:0 0;padding:0;border-radius:0}.seopress-option .nav-tab{border:0 solid #ccc;background:0 0;opacity:.5;padding:6px 30px 6px 10px;transition:opacity .3s linear;color:#191e23;margin:0;float:none;display:inline-block;width:100%;text-align:left;font-weight:400;box-sizing:border-box;white-space:normal}#seopress-admin-tabs .nav-tab{border:0 solid #ccc;background:0 0;opacity:.5;padding:14px 20px;transition:opacity .3s linear;color:#191e23;margin:0;box-shadow:inset -1px 0 #e3e8ee;float:none;display:inline-block;text-align:center;font-weight:400}#seopress-admin-tabs .nav-tab{width:100%}#seopress-admin-tabs .nav-tab-active,#seopress-admin-tabs .nav-tab-active:hover,.seopress-option .about-wrap h2 .nav-tab-active,.seopress-option .nav-tab-active,.seopress-option .nav-tab-active:hover{background-color:#fff}#seopress-admin-tabs .nav-tab-active,#seopress-admin-tabs .nav-tab-active:focus,#seopress-admin-tabs .nav-tab-active:focus:active,#seopress-admin-tabs .nav-tab-active:hover,#seopress-admin-tabs .nav-tab:focus,.nav-tab-active:focus,.seopress-option .nav-tab-active,.seopress-option .nav-tab-active:focus:active,.seopress-option .nav-tab-active:hover,.seopress-option .nav-tab:focus{opacity:1;outline:0;font-weight:600;position:relative;color:#191e23;border-left:3px solid #0085ba;background:rgba(0,133,186,.1)}#seopress-admin-tabs .nav-tab-active,#seopress-admin-tabs .nav-tab-active:focus,#seopress-admin-tabs .nav-tab-active:focus:active,#seopress-admin-tabs .nav-tab-active:hover,#seopress-admin-tabs .nav-tab:focus{border-bottom:3px solid #3197d3;border-left:none;background:#fff}#seopress-admin-tabs .nav-tab:hover,.seopress-option .nav-tab:hover{opacity:1}#seopress-admin-tabs .nav-tab:focus,.seopress-option .nav-tab:focus{outline:0;box-shadow:none}.seopress-option .section-tool{border:none;box-shadow:none;background:0 0;position:relative}.seopress-option .section-tool::after{content:'';background:#dedede;height:1px;width:100%;display:block}.seopress-option .sp-section-header{border-bottom:1px solid #eee;margin:0 0 1rem 0;width:100%;display:flex;position:relative;align-items:center;padding-bottom:.5rem}.seopress-option .sp-section-header::after{position:absolute;content:'';background:#0085ba;height:2px;width:40px;bottom:0;left:0}.seopress-option .sp-section-header h2{font-size:1.5em}.seopress-option .sp-section-header>.dashicons{color:#0085ba;padding:10px;border-radius:6px;margin-right:10px;background:#c4f0ff}.seopress-option .sp-section-header .wrap-toggle-checkboxes{display:flex}.seopress-styles .wrap .notice{margin:5px 0 15px 15px}
assets/js/seopress-counters.js CHANGED
@@ -180,6 +180,16 @@ function pixelDesc(e) {
180
  return formattedWidth;
181
  }
182
 
 
 
 
 
 
 
 
 
 
 
183
  function sp_social_img(social_slug) {
184
  jQuery(".snippet-"+social_slug+"-img-alert").css("display", "none");
185
  var meta_img_val = jQuery('#seopress_social_'+social_slug+'_img_meta').val();
@@ -188,48 +198,53 @@ function sp_social_img(social_slug) {
188
  var meta_img_val = jQuery('#seopress_social_'+social_slug+'_img_meta').attr('placeholder');
189
  }
190
 
191
- meta_img_val.length > 0 ? (jQuery('.snippet-'+social_slug+'-img-custom img').attr("src", meta_img_val),
192
- jQuery(".snippet-"+social_slug+"-img").css("display", "none"),
193
- jQuery(".snippet-"+social_slug+"-img-custom").css("display", "block"),
194
- jQuery(".snippet-"+social_slug+"-img-default").css("display", "none")) : 0 == meta_img_val.length && (jQuery(".snippet-"+social_slug+"-img-default").css("display", "block"),
195
- jQuery(".snippet-"+social_slug+"-img-custom").css("display", "none"), jQuery(".snippet-"+social_slug+"-img").css("display", "none"));
196
-
197
- if(meta_img_val.length > 0) {
198
- // Check file URL
199
- jQuery.get(meta_img_val).done(function() {
200
- // Extract filetype
201
- var meta_img_filetype = meta_img_val.split(/\#|\?/)[0].split('.').pop().trim();
202
- var types = ['jpg', 'jpeg', 'gif', 'png'];
203
-
204
- if(types.indexOf(meta_img_filetype) == -1) {
205
- jQuery(".snippet-"+social_slug+"-img-alert.alert1").css("display", "block");
206
- } else {
207
- // Extract image size
208
- var tmp_img = new Image();
209
- tmp_img.src = meta_img_val;
210
- jQuery(tmp_img).one('load',function(){
211
- pic_real_width = parseInt(tmp_img.width);
212
- pic_real_height = parseInt(tmp_img.height);
213
-
214
- // Default minimum size
215
- if (social_slug == 'fb') {
216
- min_width = 200,
217
- min_height = 200
218
- } else {
219
- min_width = 144,
220
- min_height = 144
221
- }
222
- if(pic_real_width < min_width || pic_real_height < min_height) {
223
- jQuery(".snippet-"+social_slug+"-img-alert.alert2").css("display", "block");
224
- }
225
- ratio_img = (pic_real_width / pic_real_height).toFixed(2);
226
- jQuery(".snippet-"+social_slug+"-img-alert.alert4").css("display", "block");
227
- jQuery(".snippet-"+social_slug+"-img-alert.alert4 span").text(ratio_img);
228
- });
229
- }
230
- }).fail(function() {
231
- jQuery(".snippet-"+social_slug+"-img-alert.alert3").css("display", "block");
232
- });
 
 
 
 
 
233
  }
234
  }
235
 
180
  return formattedWidth;
181
  }
182
 
183
+ function sp_is_valid_url(str) {
184
+ var pattern = new RegExp('^(https?:\\/\\/)?'+ // protocol
185
+ '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|'+ // domain name
186
+ '((\\d{1,3}\\.){3}\\d{1,3}))'+ // OR ip (v4) address
187
+ '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*'+ // port and path
188
+ '(\\?[;&a-z\\d%_.~+=-]*)?'+ // query string
189
+ '(\\#[-a-z\\d_]*)?$','i'); // fragment locator
190
+ return !!pattern.test(str);
191
+ }
192
+
193
  function sp_social_img(social_slug) {
194
  jQuery(".snippet-"+social_slug+"-img-alert").css("display", "none");
195
  var meta_img_val = jQuery('#seopress_social_'+social_slug+'_img_meta').val();
198
  var meta_img_val = jQuery('#seopress_social_'+social_slug+'_img_meta').attr('placeholder');
199
  }
200
 
201
+ // Check valid URL
202
+ if (sp_is_valid_url(meta_img_val) === true) {
203
+ meta_img_val.length > 0 ? (jQuery('.snippet-'+social_slug+'-img-custom img').attr("src", meta_img_val),
204
+ jQuery(".snippet-"+social_slug+"-img").css("display", "none"),
205
+ jQuery(".snippet-"+social_slug+"-img-custom").css("display", "block"),
206
+ jQuery(".snippet-"+social_slug+"-img-default").css("display", "none")) : 0 == meta_img_val.length && (jQuery(".snippet-"+social_slug+"-img-default").css("display", "block"),
207
+ jQuery(".snippet-"+social_slug+"-img-custom").css("display", "none"), jQuery(".snippet-"+social_slug+"-img").css("display", "none"));
208
+
209
+ if(meta_img_val.length > 0) {
210
+ // Check file URL
211
+ jQuery.get(meta_img_val).done(function() {
212
+ // Extract filetype
213
+ var meta_img_filetype = meta_img_val.split(/\#|\?/)[0].split('.').pop().trim();
214
+ var types = ['jpg', 'jpeg', 'gif', 'png'];
215
+
216
+ if(types.indexOf(meta_img_filetype) == -1) {
217
+ jQuery(".snippet-"+social_slug+"-img-alert.alert1").css("display", "block");
218
+ } else {
219
+ // Extract image size
220
+ var tmp_img = new Image();
221
+ tmp_img.src = meta_img_val;
222
+ jQuery(tmp_img).one('load',function(){
223
+ pic_real_width = parseInt(tmp_img.width);
224
+ pic_real_height = parseInt(tmp_img.height);
225
+
226
+ // Default minimum size
227
+ if (social_slug == 'fb') {
228
+ min_width = 200,
229
+ min_height = 200
230
+ } else {
231
+ min_width = 144,
232
+ min_height = 144
233
+ }
234
+ if(pic_real_width < min_width || pic_real_height < min_height) {
235
+ jQuery(".snippet-"+social_slug+"-img-alert.alert2").css("display", "block");
236
+ }
237
+ ratio_img = (pic_real_width / pic_real_height).toFixed(2);
238
+ jQuery(".snippet-"+social_slug+"-img-alert.alert4").css("display", "block");
239
+ jQuery(".snippet-"+social_slug+"-img-alert.alert4 span").text(ratio_img);
240
+ });
241
+ }
242
+ }).fail(function() {
243
+ jQuery(".snippet-"+social_slug+"-img-alert.alert3").css("display", "block");
244
+ });
245
+ }
246
+ } else {
247
+ jQuery(".snippet-"+social_slug+"-img-alert.alert3").css("display", "block");
248
  }
249
  }
250
 
assets/js/seopress-counters.min.js CHANGED
@@ -1 +1 @@
1
- function sp_titles_counters(){var e=jQuery("#seopress_titles_title_meta").val(),t=jQuery("#seopress_titles_title_meta").attr("placeholder");if(jQuery("#seopress_titles_title_counters").after('<div id="seopress_titles_title_counters_val">/ 60</div>'),e.length>0?(jQuery("#seopress_titles_title_counters").text(e.length),jQuery("#seopress_titles_title_pixel").text(pixelTitle(e))):t.length&&(jQuery("#seopress_titles_title_counters").text(t.length),jQuery("#seopress_titles_title_pixel").text(pixelTitle(t))),e.length>60?jQuery("#seopress_titles_title_counters").css("color","red"):t.length>60&&jQuery("#seopress_titles_title_counters").css("color","red"),pixelTitle(e)>568?jQuery("#seopress_titles_title_pixel").css("color","red"):pixelTitle(t)>568&&jQuery("#seopress_titles_title_pixel").css("color","red"),e.length)var s=Math.round(pixelTitle(e)/568*100);else s=Math.round(pixelTitle(t)/568*100);s>=100&&(s=100),jQuery("#seopress_titles_title_counters_progress").attr("aria-valuenow",s),jQuery("#seopress_titles_title_counters_progress").text(s+"%"),jQuery("#seopress_titles_title_counters_progress").css("width",s+"%"),jQuery("#seopress_titles_title_meta, #seopress-tag-single-title, #seopress-tag-single-site-title, #seopress-tag-single-sep").on("keyup paste change click",function(e){var t=jQuery("#seopress_titles_title_meta").val(),s=jQuery("#seopress_titles_title_meta").attr("placeholder");if(jQuery("#seopress_titles_title_counters").css("color","inherit"),jQuery("#seopress_titles_title_pixel").css("color","inherit"),t.length>60&&jQuery("#seopress_titles_title_counters").css("color","red"),pixelTitle(t)>568&&jQuery("#seopress_titles_title_pixel").css("color","red"),0==t.length&&(s.length>60&&jQuery("#seopress_titles_title_counters").css("color","red"),pixelTitle(s)>568&&jQuery("#seopress_titles_title_pixel").css("color","red")),t.length>0?(jQuery("#seopress_titles_title_counters").text(t.length),jQuery("#seopress_titles_title_pixel").text(pixelTitle(t))):s.length&&(jQuery("#seopress_titles_title_counters").text(s.length),jQuery("#seopress_titles_title_pixel").text(pixelTitle(s))),t.length>0?(jQuery(".snippet-title-custom").text(e.target.value),jQuery(".snippet-title").css("display","none"),jQuery(".snippet-title-custom").css("display","block"),jQuery(".snippet-title-default").css("display","none")):0==t.length&&(jQuery(".snippet-title-default").css("display","block"),jQuery(".snippet-title-custom").css("display","none"),jQuery(".snippet-title").css("display","none")),t.length)var i=Math.round(pixelTitle(t)/568*100);else i=Math.round(pixelTitle(s)/568*100);i>=100&&(i=100),jQuery("#seopress_titles_title_counters_progress").attr("aria-valuenow",i),jQuery("#seopress_titles_title_counters_progress").text(i+"%"),jQuery("#seopress_titles_title_counters_progress").css("width",i+"%")})}function sp_meta_desc_counters(){var e=jQuery("#seopress_titles_desc_meta").val(),t=jQuery("#seopress_titles_desc_meta").attr("placeholder");if(jQuery("#seopress_titles_desc_counters").after('<div id="seopress_titles_desc_counters_val">/ 160</div>'),e.length>0?(jQuery("#seopress_titles_desc_counters").text(e.length),jQuery("#seopress_titles_desc_pixel").text(pixelDesc(e))):t.length&&(jQuery("#seopress_titles_desc_counters").text(t.length),jQuery("#seopress_titles_desc_pixel").text(pixelDesc(t))),e.length>160?jQuery("#seopress_titles_desc_counters").css("color","red"):t.length>160&&jQuery("#seopress_titles_desc_counters").css("color","red"),pixelDesc(e)>940?jQuery("#seopress_titles_desc_pixel").css("color","red"):pixelDesc(t)>940&&jQuery("#seopress_titles_desc_pixel").css("color","red"),e.length)var s=Math.round(pixelDesc(e)/940*100);else s=Math.round(pixelDesc(t)/940*100);s>=100&&(s=100),jQuery("#seopress_titles_desc_counters_progress").attr("aria-valuenow",s),jQuery("#seopress_titles_desc_counters_progress").text(s+"%"),jQuery("#seopress_titles_desc_counters_progress").css("width",s+"%"),jQuery("#seopress_titles_desc_meta, #seopress-tag-single-excerpt").on("keyup paste change click",function(e){var t=jQuery("#seopress_titles_desc_meta").val(),s=jQuery("#seopress_titles_desc_meta").attr("placeholder");if(jQuery("#seopress_titles_desc_counters").css("color","inherit"),jQuery("#seopress_titles_desc_pixel").css("color","inherit"),t.length>160&&jQuery("#seopress_titles_desc_counters").css("color","red"),pixelDesc(t)>940&&jQuery("#seopress_titles_desc_pixel").css("color","red"),0==t.length&&(s.length>160&&jQuery("#seopress_titles_desc_counters").css("color","red"),pixelDesc(s)>940&&jQuery("#seopress_titles_desc_pixel").css("color","red")),t.length>0?(jQuery("#seopress_titles_desc_counters").text(t.length),jQuery("#seopress_titles_desc_pixel").text(pixelDesc(t))):s.length&&(jQuery("#seopress_titles_desc_counters").text(s.length),jQuery("#seopress_titles_desc_pixel").text(pixelDesc(s))),t.length>0?(jQuery(".snippet-description-custom").text(e.target.value),jQuery(".snippet-description").css("display","none"),jQuery(".snippet-description-custom").css("display","inline"),jQuery(".snippet-description-default").css("display","none")):0==t.length&&(jQuery(".snippet-description-default").css("display","inline"),jQuery(".snippet-description-custom").css("display","none"),jQuery(".snippet-description").css("display","none")),t.length)var i=Math.round(pixelDesc(t)/940*100);else i=Math.round(pixelDesc(s)/940*100);i>=100&&(i=100),jQuery("#seopress_titles_desc_counters_progress").attr("aria-valuenow",i),jQuery("#seopress_titles_desc_counters_progress").text(i+"%"),jQuery("#seopress_titles_desc_counters_progress").css("width",i+"%")}),jQuery("#excerpt, .editor-post-excerpt textarea").keyup(function(e){var t=jQuery("#seopress_titles_desc_meta").val(),s=jQuery("#seopress_titles_desc_meta").attr("placeholder");if(0==t.length&&0==jQuery(".snippet-description-custom").val().length&&(jQuery(".snippet-description-custom").text(e.target.value),jQuery(".snippet-description").css("display","none"),jQuery(".snippet-description-custom").css("display","inline"),jQuery(".snippet-description-default").css("display","none")),t.length)var i=t.length;else i=s.length;i>=100&&(i=100),jQuery("#seopress_titles_desc_counters_progress").attr("aria-valuenow",i),jQuery("#seopress_titles_desc_counters_progress").text(i+"%"),jQuery("#seopress_titles_desc_counters_progress").css("width",i+"%")})}function pixelTitle(e){return inputText=e,font="18px Arial",canvas=document.createElement("canvas"),context=canvas.getContext("2d"),context.font=font,width=context.measureText(inputText).width,formattedWidth=Math.ceil(width),formattedWidth}function pixelDesc(e){return inputText=e,font="14px Arial",canvas=document.createElement("canvas"),context=canvas.getContext("2d"),context.font=font,width=context.measureText(inputText).width,formattedWidth=Math.ceil(width),formattedWidth}function sp_social_img(e){if(jQuery(".snippet-"+e+"-img-alert").css("display","none"),""==(t=jQuery("#seopress_social_"+e+"_img_meta").val()))var t=jQuery("#seopress_social_"+e+"_img_meta").attr("placeholder");t.length>0?(jQuery(".snippet-"+e+"-img-custom img").attr("src",t),jQuery(".snippet-"+e+"-img").css("display","none"),jQuery(".snippet-"+e+"-img-custom").css("display","block"),jQuery(".snippet-"+e+"-img-default").css("display","none")):0==t.length&&(jQuery(".snippet-"+e+"-img-default").css("display","block"),jQuery(".snippet-"+e+"-img-custom").css("display","none"),jQuery(".snippet-"+e+"-img").css("display","none")),t.length>0&&jQuery.get(t).done(function(){var s=t.split(/\#|\?/)[0].split(".").pop().trim();if(-1==["jpg","jpeg","gif","png"].indexOf(s))jQuery(".snippet-"+e+"-img-alert.alert1").css("display","block");else{var i=new Image;i.src=t,jQuery(i).one("load",function(){pic_real_width=parseInt(i.width),pic_real_height=parseInt(i.height),"fb"==e?(min_width=200,min_height=200):(min_width=144,min_height=144),(pic_real_width<min_width||pic_real_height<min_height)&&jQuery(".snippet-"+e+"-img-alert.alert2").css("display","block"),ratio_img=(pic_real_width/pic_real_height).toFixed(2),jQuery(".snippet-"+e+"-img-alert.alert4").css("display","block"),jQuery(".snippet-"+e+"-img-alert.alert4 span").text(ratio_img)})}}).fail(function(){jQuery(".snippet-"+e+"-img-alert.alert3").css("display","block")})}function sp_social(){jQuery("#seopress_social_fb_title_meta, #seopress-tag-single-title, #seopress-tag-single-site-title, #seopress-tag-single-sep").on("keyup paste change click",function(e){var t=jQuery("#seopress_social_fb_title_meta").val();t.length>0?(jQuery(".snippet-fb-title-custom").text(e.target.value),jQuery(".snippet-fb-title").css("display","none"),jQuery(".snippet-fb-title-custom").css("display","block"),jQuery(".snippet-fb-title-default").css("display","none")):0==t.length&&(jQuery(".snippet-fb-title-default").css("display","block"),jQuery(".snippet-fb-title-custom").css("display","none"),jQuery(".snippet-fb-title").css("display","none"))}),jQuery("#seopress_social_fb_desc_meta").on("keyup paste change click",function(e){var t=jQuery("#seopress_social_fb_desc_meta").val();t.length>0?(jQuery(".snippet-fb-description-custom").text(e.target.value),jQuery(".snippet-fb-description").css("display","none"),jQuery(".snippet-fb-description-custom").css("display","block"),jQuery(".snippet-fb-description-default").css("display","none")):0==t.length&&(jQuery(".snippet-fb-description-default").css("display","block"),jQuery(".snippet-fb-description-custom").css("display","none"),jQuery(".snippet-fb-description").css("display","none"))}),sp_social_img("fb"),jQuery("#seopress_social_fb_img_meta").on("keyup paste change click",function(){sp_social_img("fb")}),jQuery("#seopress_social_twitter_title_meta").on("keyup paste change click",function(e){var t=jQuery("#seopress_social_twitter_title_meta").val();t.length>0?(jQuery(".snippet-twitter-title-custom").text(e.target.value),jQuery(".snippet-twitter-title").css("display","none"),jQuery(".snippet-twitter-title-custom").css("display","block"),jQuery(".snippet-twitter-title-default").css("display","none")):0==t.length&&(jQuery(".snippet-twitter-title-default").css("display","block"),jQuery(".snippet-twitter-title-custom").css("display","none"),jQuery(".snippet-twitter-title").css("display","none"))}),jQuery("#seopress_social_twitter_desc_meta").on("keyup paste change click",function(e){var t=jQuery("#seopress_social_twitter_desc_meta").val();t.length>0?(jQuery(".snippet-twitter-description-custom").text(e.target.value),jQuery(".snippet-twitter-description").css("display","none"),jQuery(".snippet-twitter-description-custom").css("display","block"),jQuery(".snippet-twitter-description-default").css("display","none")):0==t.length&&(jQuery(".snippet-twitter-description-default").css("display","block"),jQuery(".snippet-twitter-description-custom").css("display","none"),jQuery(".snippet-twitter-description").css("display","none"))}),sp_social_img("twitter"),jQuery("#seopress_social_twitter_img_meta").on("keyup paste change click",function(){sp_social_img("twitter")})}function sp_ca_toggle(){var e=!1;jQuery(".gr-analysis-title .btn-toggle").on("click",function(t){e&&(event.stopImmediatePropagation(),event.preventDefault(),e=!1),jQuery(this).toggleClass("open"),jQuery(this).parent().parent().next(".gr-analysis-content").toggle()}),jQuery("#expand-all").on("click",function(e){e.preventDefault(),jQuery(".gr-analysis-content").show()}),jQuery("#close-all").on("click",function(e){e.preventDefault(),jQuery(".gr-analysis-content").hide()})}jQuery(document).ready(function(e){function t(){e.ajax({method:"GET",url:seopressAjaxRealPreview.seopress_real_preview,data:{action:"seopress_do_real_preview",post_id:e("#seopress-tabs").attr("data_id"),tax_name:e("#seopress-tabs").attr("data_tax"),origin:e("#seopress-tabs").attr("data_origin"),post_type:e("#seopress_launch_analysis").attr("data_post_type"),seopress_analysis_target_kw:e("#seopress_analysis_target_kw_meta").val(),_ajax_nonce:seopressAjaxRealPreview.seopress_nonce},beforeSend:function(){e(".analysis-score p span").fadeIn().text(seopressAjaxRealPreview.i18n.progress),e(".analysis-score p").addClass("loading")},success:function(t){void 0===t.data.og_title?og_title="":og_title=t.data.og_title.values,void 0===t.data.og_desc?og_desc="":og_desc=t.data.og_desc.values,void 0===t.data.og_img?og_img="":og_img=t.data.og_img.values,void 0===t.data.og_url?og_url="":og_url=t.data.og_url.host,void 0===t.data.og_site_name?og_site_name="":og_site_name=t.data.og_site_name.values,void 0===t.data.tw_title?tw_title="":tw_title=t.data.tw_title.values,void 0===t.data.tw_desc?tw_desc="":tw_desc=t.data.tw_desc.values,void 0===t.data.tw_img?tw_img="":tw_img=t.data.tw_img.values;var s={og_title:og_title,og_desc:og_desc,og_img:og_img,og_url:og_url,og_site_name:og_site_name,tw_title:tw_title,tw_desc:tw_desc,tw_img:tw_img};for(var i in s)s.length&&(i=s[i].length>1?s[i].slice(-1)[0]:s[i][0]);e("#seopress_cpt .google-snippet-preview .snippet-title").html(t.data.title),e("#seopress_cpt .google-snippet-preview .snippet-title-default").html(t.data.title),e("#seopress_titles_title_meta").attr("placeholder",t.data.title),e("#seopress_cpt .google-snippet-preview .snippet-description").html(t.data.meta_desc),e("#seopress_cpt .google-snippet-preview .snippet-description-default").html(t.data.meta_desc),e("#seopress_titles_desc_meta").attr("placeholder",t.data.meta_desc),s.og_title&&(e("#seopress_cpt #seopress_social_fb_title_meta").attr("placeholder",s.og_title[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-title").html(s.og_title[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-title-default").html(s.og_title[0])),s.og_desc&&(e("#seopress_cpt #seopress_social_fb_desc_meta").attr("placeholder",s.og_desc[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-description").html(s.og_desc[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-description-default").html(s.og_desc[0])),s.og_img&&(e("#seopress_cpt #seopress_social_fb_img_meta").attr("placeholder",s.og_img[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-img img").attr("src",s.og_img[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-img-default img").attr("src",s.og_img[0])),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-url").html(s.og_url),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-site-name").html(s.og_site_name),s.tw_title&&(e("#seopress_cpt #seopress_social_twitter_title_meta").attr("placeholder",s.tw_title[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-title").html(s.tw_title[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-title-default").html(s.tw_title[0])),s.tw_desc&&(e("#seopress_cpt #seopress_social_twitter_desc_meta").attr("placeholder",s.tw_desc[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-description").html(s.tw_desc[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-description-default").html(s.tw_desc[0])),s.tw_img&&(e("#seopress_cpt #seopress_social_twitter_img_meta").attr("placeholder",s.tw_img[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-img img").attr("src",s.tw_img[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-img-default img").attr("src",s.tw_img[0])),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-url").html(s.og_url),e("#seopress_cpt #seopress_robots_canonical_meta").attr("placeholder",t.data.canonical),e("#seopress-analysis-tabs").load(" #seopress-analysis-tabs-1","",sp_ca_toggle),e(".analysis-score p").removeClass("loading"),e(" #seopress_titles_title_counters_val").remove(),e(" #seopress_titles_desc_counters_val").remove(),sp_titles_counters(),sp_meta_desc_counters(),sp_social()}})}"1"==jQuery("#toggle-preview").attr("data-toggle")?jQuery("#seopress_cpt .google-snippet-preview").addClass("mobile-preview"):jQuery("#seopress_cpt .google-snippet-preview").removeClass("mobile-preview"),jQuery("#toggle-preview").on("click",function(){jQuery("#toggle-preview").attr("data-toggle","1"==jQuery("#toggle-preview").attr("data-toggle")?"0":"1"),jQuery("#seopress_cpt .google-snippet-preview").toggleClass("mobile-preview")}),t(),e("#seopress_launch_analysis").on("click",function(){t()}),sp_ca_toggle()});
1
+ function sp_titles_counters(){var e=jQuery("#seopress_titles_title_meta").val(),t=jQuery("#seopress_titles_title_meta").attr("placeholder");if(jQuery("#seopress_titles_title_counters").after('<div id="seopress_titles_title_counters_val">/ 60</div>'),e.length>0?(jQuery("#seopress_titles_title_counters").text(e.length),jQuery("#seopress_titles_title_pixel").text(pixelTitle(e))):t.length&&(jQuery("#seopress_titles_title_counters").text(t.length),jQuery("#seopress_titles_title_pixel").text(pixelTitle(t))),e.length>60?jQuery("#seopress_titles_title_counters").css("color","red"):t.length>60&&jQuery("#seopress_titles_title_counters").css("color","red"),pixelTitle(e)>568?jQuery("#seopress_titles_title_pixel").css("color","red"):pixelTitle(t)>568&&jQuery("#seopress_titles_title_pixel").css("color","red"),e.length)var s=Math.round(pixelTitle(e)/568*100);else s=Math.round(pixelTitle(t)/568*100);s>=100&&(s=100),jQuery("#seopress_titles_title_counters_progress").attr("aria-valuenow",s),jQuery("#seopress_titles_title_counters_progress").text(s+"%"),jQuery("#seopress_titles_title_counters_progress").css("width",s+"%"),jQuery("#seopress_titles_title_meta, #seopress-tag-single-title, #seopress-tag-single-site-title, #seopress-tag-single-sep").on("keyup paste change click",function(e){var t=jQuery("#seopress_titles_title_meta").val(),s=jQuery("#seopress_titles_title_meta").attr("placeholder");if(jQuery("#seopress_titles_title_counters").css("color","inherit"),jQuery("#seopress_titles_title_pixel").css("color","inherit"),t.length>60&&jQuery("#seopress_titles_title_counters").css("color","red"),pixelTitle(t)>568&&jQuery("#seopress_titles_title_pixel").css("color","red"),0==t.length&&(s.length>60&&jQuery("#seopress_titles_title_counters").css("color","red"),pixelTitle(s)>568&&jQuery("#seopress_titles_title_pixel").css("color","red")),t.length>0?(jQuery("#seopress_titles_title_counters").text(t.length),jQuery("#seopress_titles_title_pixel").text(pixelTitle(t))):s.length&&(jQuery("#seopress_titles_title_counters").text(s.length),jQuery("#seopress_titles_title_pixel").text(pixelTitle(s))),t.length>0?(jQuery(".snippet-title-custom").text(e.target.value),jQuery(".snippet-title").css("display","none"),jQuery(".snippet-title-custom").css("display","block"),jQuery(".snippet-title-default").css("display","none")):0==t.length&&(jQuery(".snippet-title-default").css("display","block"),jQuery(".snippet-title-custom").css("display","none"),jQuery(".snippet-title").css("display","none")),t.length)var i=Math.round(pixelTitle(t)/568*100);else i=Math.round(pixelTitle(s)/568*100);i>=100&&(i=100),jQuery("#seopress_titles_title_counters_progress").attr("aria-valuenow",i),jQuery("#seopress_titles_title_counters_progress").text(i+"%"),jQuery("#seopress_titles_title_counters_progress").css("width",i+"%")})}function sp_meta_desc_counters(){var e=jQuery("#seopress_titles_desc_meta").val(),t=jQuery("#seopress_titles_desc_meta").attr("placeholder");if(jQuery("#seopress_titles_desc_counters").after('<div id="seopress_titles_desc_counters_val">/ 160</div>'),e.length>0?(jQuery("#seopress_titles_desc_counters").text(e.length),jQuery("#seopress_titles_desc_pixel").text(pixelDesc(e))):t.length&&(jQuery("#seopress_titles_desc_counters").text(t.length),jQuery("#seopress_titles_desc_pixel").text(pixelDesc(t))),e.length>160?jQuery("#seopress_titles_desc_counters").css("color","red"):t.length>160&&jQuery("#seopress_titles_desc_counters").css("color","red"),pixelDesc(e)>940?jQuery("#seopress_titles_desc_pixel").css("color","red"):pixelDesc(t)>940&&jQuery("#seopress_titles_desc_pixel").css("color","red"),e.length)var s=Math.round(pixelDesc(e)/940*100);else s=Math.round(pixelDesc(t)/940*100);s>=100&&(s=100),jQuery("#seopress_titles_desc_counters_progress").attr("aria-valuenow",s),jQuery("#seopress_titles_desc_counters_progress").text(s+"%"),jQuery("#seopress_titles_desc_counters_progress").css("width",s+"%"),jQuery("#seopress_titles_desc_meta, #seopress-tag-single-excerpt").on("keyup paste change click",function(e){var t=jQuery("#seopress_titles_desc_meta").val(),s=jQuery("#seopress_titles_desc_meta").attr("placeholder");if(jQuery("#seopress_titles_desc_counters").css("color","inherit"),jQuery("#seopress_titles_desc_pixel").css("color","inherit"),t.length>160&&jQuery("#seopress_titles_desc_counters").css("color","red"),pixelDesc(t)>940&&jQuery("#seopress_titles_desc_pixel").css("color","red"),0==t.length&&(s.length>160&&jQuery("#seopress_titles_desc_counters").css("color","red"),pixelDesc(s)>940&&jQuery("#seopress_titles_desc_pixel").css("color","red")),t.length>0?(jQuery("#seopress_titles_desc_counters").text(t.length),jQuery("#seopress_titles_desc_pixel").text(pixelDesc(t))):s.length&&(jQuery("#seopress_titles_desc_counters").text(s.length),jQuery("#seopress_titles_desc_pixel").text(pixelDesc(s))),t.length>0?(jQuery(".snippet-description-custom").text(e.target.value),jQuery(".snippet-description").css("display","none"),jQuery(".snippet-description-custom").css("display","inline"),jQuery(".snippet-description-default").css("display","none")):0==t.length&&(jQuery(".snippet-description-default").css("display","inline"),jQuery(".snippet-description-custom").css("display","none"),jQuery(".snippet-description").css("display","none")),t.length)var i=Math.round(pixelDesc(t)/940*100);else i=Math.round(pixelDesc(s)/940*100);i>=100&&(i=100),jQuery("#seopress_titles_desc_counters_progress").attr("aria-valuenow",i),jQuery("#seopress_titles_desc_counters_progress").text(i+"%"),jQuery("#seopress_titles_desc_counters_progress").css("width",i+"%")}),jQuery("#excerpt, .editor-post-excerpt textarea").keyup(function(e){var t=jQuery("#seopress_titles_desc_meta").val(),s=jQuery("#seopress_titles_desc_meta").attr("placeholder");if(0==t.length&&0==jQuery(".snippet-description-custom").val().length&&(jQuery(".snippet-description-custom").text(e.target.value),jQuery(".snippet-description").css("display","none"),jQuery(".snippet-description-custom").css("display","inline"),jQuery(".snippet-description-default").css("display","none")),t.length)var i=t.length;else i=s.length;i>=100&&(i=100),jQuery("#seopress_titles_desc_counters_progress").attr("aria-valuenow",i),jQuery("#seopress_titles_desc_counters_progress").text(i+"%"),jQuery("#seopress_titles_desc_counters_progress").css("width",i+"%")})}function pixelTitle(e){return inputText=e,font="18px Arial",canvas=document.createElement("canvas"),context=canvas.getContext("2d"),context.font=font,width=context.measureText(inputText).width,formattedWidth=Math.ceil(width),formattedWidth}function pixelDesc(e){return inputText=e,font="14px Arial",canvas=document.createElement("canvas"),context=canvas.getContext("2d"),context.font=font,width=context.measureText(inputText).width,formattedWidth=Math.ceil(width),formattedWidth}function sp_is_valid_url(e){return!!new RegExp("^(https?:\\/\\/)?((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|((\\d{1,3}\\.){3}\\d{1,3}))(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*(\\?[;&a-z\\d%_.~+=-]*)?(\\#[-a-z\\d_]*)?$","i").test(e)}function sp_social_img(e){if(jQuery(".snippet-"+e+"-img-alert").css("display","none"),""==(t=jQuery("#seopress_social_"+e+"_img_meta").val()))var t=jQuery("#seopress_social_"+e+"_img_meta").attr("placeholder");!0===sp_is_valid_url(t)?(t.length>0?(jQuery(".snippet-"+e+"-img-custom img").attr("src",t),jQuery(".snippet-"+e+"-img").css("display","none"),jQuery(".snippet-"+e+"-img-custom").css("display","block"),jQuery(".snippet-"+e+"-img-default").css("display","none")):0==t.length&&(jQuery(".snippet-"+e+"-img-default").css("display","block"),jQuery(".snippet-"+e+"-img-custom").css("display","none"),jQuery(".snippet-"+e+"-img").css("display","none")),t.length>0&&jQuery.get(t).done(function(){var s=t.split(/\#|\?/)[0].split(".").pop().trim();if(-1==["jpg","jpeg","gif","png"].indexOf(s))jQuery(".snippet-"+e+"-img-alert.alert1").css("display","block");else{var i=new Image;i.src=t,jQuery(i).one("load",function(){pic_real_width=parseInt(i.width),pic_real_height=parseInt(i.height),"fb"==e?(min_width=200,min_height=200):(min_width=144,min_height=144),(pic_real_width<min_width||pic_real_height<min_height)&&jQuery(".snippet-"+e+"-img-alert.alert2").css("display","block"),ratio_img=(pic_real_width/pic_real_height).toFixed(2),jQuery(".snippet-"+e+"-img-alert.alert4").css("display","block"),jQuery(".snippet-"+e+"-img-alert.alert4 span").text(ratio_img)})}}).fail(function(){jQuery(".snippet-"+e+"-img-alert.alert3").css("display","block")})):jQuery(".snippet-"+e+"-img-alert.alert3").css("display","block")}function sp_social(){jQuery("#seopress_social_fb_title_meta, #seopress-tag-single-title, #seopress-tag-single-site-title, #seopress-tag-single-sep").on("keyup paste change click",function(e){var t=jQuery("#seopress_social_fb_title_meta").val();t.length>0?(jQuery(".snippet-fb-title-custom").text(e.target.value),jQuery(".snippet-fb-title").css("display","none"),jQuery(".snippet-fb-title-custom").css("display","block"),jQuery(".snippet-fb-title-default").css("display","none")):0==t.length&&(jQuery(".snippet-fb-title-default").css("display","block"),jQuery(".snippet-fb-title-custom").css("display","none"),jQuery(".snippet-fb-title").css("display","none"))}),jQuery("#seopress_social_fb_desc_meta").on("keyup paste change click",function(e){var t=jQuery("#seopress_social_fb_desc_meta").val();t.length>0?(jQuery(".snippet-fb-description-custom").text(e.target.value),jQuery(".snippet-fb-description").css("display","none"),jQuery(".snippet-fb-description-custom").css("display","block"),jQuery(".snippet-fb-description-default").css("display","none")):0==t.length&&(jQuery(".snippet-fb-description-default").css("display","block"),jQuery(".snippet-fb-description-custom").css("display","none"),jQuery(".snippet-fb-description").css("display","none"))}),sp_social_img("fb"),jQuery("#seopress_social_fb_img_meta").on("keyup paste change click",function(){sp_social_img("fb")}),jQuery("#seopress_social_twitter_title_meta").on("keyup paste change click",function(e){var t=jQuery("#seopress_social_twitter_title_meta").val();t.length>0?(jQuery(".snippet-twitter-title-custom").text(e.target.value),jQuery(".snippet-twitter-title").css("display","none"),jQuery(".snippet-twitter-title-custom").css("display","block"),jQuery(".snippet-twitter-title-default").css("display","none")):0==t.length&&(jQuery(".snippet-twitter-title-default").css("display","block"),jQuery(".snippet-twitter-title-custom").css("display","none"),jQuery(".snippet-twitter-title").css("display","none"))}),jQuery("#seopress_social_twitter_desc_meta").on("keyup paste change click",function(e){var t=jQuery("#seopress_social_twitter_desc_meta").val();t.length>0?(jQuery(".snippet-twitter-description-custom").text(e.target.value),jQuery(".snippet-twitter-description").css("display","none"),jQuery(".snippet-twitter-description-custom").css("display","block"),jQuery(".snippet-twitter-description-default").css("display","none")):0==t.length&&(jQuery(".snippet-twitter-description-default").css("display","block"),jQuery(".snippet-twitter-description-custom").css("display","none"),jQuery(".snippet-twitter-description").css("display","none"))}),sp_social_img("twitter"),jQuery("#seopress_social_twitter_img_meta").on("keyup paste change click",function(){sp_social_img("twitter")})}function sp_ca_toggle(){var e=!1;jQuery(".gr-analysis-title .btn-toggle").on("click",function(t){e&&(event.stopImmediatePropagation(),event.preventDefault(),e=!1),jQuery(this).toggleClass("open"),jQuery(this).parent().parent().next(".gr-analysis-content").toggle()}),jQuery("#expand-all").on("click",function(e){e.preventDefault(),jQuery(".gr-analysis-content").show()}),jQuery("#close-all").on("click",function(e){e.preventDefault(),jQuery(".gr-analysis-content").hide()})}jQuery(document).ready(function(e){function t(){e.ajax({method:"GET",url:seopressAjaxRealPreview.seopress_real_preview,data:{action:"seopress_do_real_preview",post_id:e("#seopress-tabs").attr("data_id"),tax_name:e("#seopress-tabs").attr("data_tax"),origin:e("#seopress-tabs").attr("data_origin"),post_type:e("#seopress_launch_analysis").attr("data_post_type"),seopress_analysis_target_kw:e("#seopress_analysis_target_kw_meta").val(),_ajax_nonce:seopressAjaxRealPreview.seopress_nonce},beforeSend:function(){e(".analysis-score p span").fadeIn().text(seopressAjaxRealPreview.i18n.progress),e(".analysis-score p").addClass("loading")},success:function(t){void 0===t.data.og_title?og_title="":og_title=t.data.og_title.values,void 0===t.data.og_desc?og_desc="":og_desc=t.data.og_desc.values,void 0===t.data.og_img?og_img="":og_img=t.data.og_img.values,void 0===t.data.og_url?og_url="":og_url=t.data.og_url.host,void 0===t.data.og_site_name?og_site_name="":og_site_name=t.data.og_site_name.values,void 0===t.data.tw_title?tw_title="":tw_title=t.data.tw_title.values,void 0===t.data.tw_desc?tw_desc="":tw_desc=t.data.tw_desc.values,void 0===t.data.tw_img?tw_img="":tw_img=t.data.tw_img.values;var s={og_title:og_title,og_desc:og_desc,og_img:og_img,og_url:og_url,og_site_name:og_site_name,tw_title:tw_title,tw_desc:tw_desc,tw_img:tw_img};for(var i in s)s.length&&(i=s[i].length>1?s[i].slice(-1)[0]:s[i][0]);e("#seopress_cpt .google-snippet-preview .snippet-title").html(t.data.title),e("#seopress_cpt .google-snippet-preview .snippet-title-default").html(t.data.title),e("#seopress_titles_title_meta").attr("placeholder",t.data.title),e("#seopress_cpt .google-snippet-preview .snippet-description").html(t.data.meta_desc),e("#seopress_cpt .google-snippet-preview .snippet-description-default").html(t.data.meta_desc),e("#seopress_titles_desc_meta").attr("placeholder",t.data.meta_desc),s.og_title&&(e("#seopress_cpt #seopress_social_fb_title_meta").attr("placeholder",s.og_title[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-title").html(s.og_title[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-title-default").html(s.og_title[0])),s.og_desc&&(e("#seopress_cpt #seopress_social_fb_desc_meta").attr("placeholder",s.og_desc[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-description").html(s.og_desc[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-description-default").html(s.og_desc[0])),s.og_img&&(e("#seopress_cpt #seopress_social_fb_img_meta").attr("placeholder",s.og_img[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-img img").attr("src",s.og_img[0]),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-img-default img").attr("src",s.og_img[0])),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-url").html(s.og_url),e("#seopress_cpt .facebook-snippet-preview .snippet-fb-site-name").html(s.og_site_name),s.tw_title&&(e("#seopress_cpt #seopress_social_twitter_title_meta").attr("placeholder",s.tw_title[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-title").html(s.tw_title[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-title-default").html(s.tw_title[0])),s.tw_desc&&(e("#seopress_cpt #seopress_social_twitter_desc_meta").attr("placeholder",s.tw_desc[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-description").html(s.tw_desc[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-description-default").html(s.tw_desc[0])),s.tw_img&&(e("#seopress_cpt #seopress_social_twitter_img_meta").attr("placeholder",s.tw_img[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-img img").attr("src",s.tw_img[0]),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-img-default img").attr("src",s.tw_img[0])),e("#seopress_cpt .twitter-snippet-preview .snippet-twitter-url").html(s.og_url),e("#seopress_cpt #seopress_robots_canonical_meta").attr("placeholder",t.data.canonical),e("#seopress-analysis-tabs").load(" #seopress-analysis-tabs-1","",sp_ca_toggle),e(".analysis-score p").removeClass("loading"),e(" #seopress_titles_title_counters_val").remove(),e(" #seopress_titles_desc_counters_val").remove(),sp_titles_counters(),sp_meta_desc_counters(),sp_social()}})}"1"==jQuery("#toggle-preview").attr("data-toggle")?jQuery("#seopress_cpt .google-snippet-preview").addClass("mobile-preview"):jQuery("#seopress_cpt .google-snippet-preview").removeClass("mobile-preview"),jQuery("#toggle-preview").on("click",function(){jQuery("#toggle-preview").attr("data-toggle","1"==jQuery("#toggle-preview").attr("data-toggle")?"0":"1"),jQuery("#seopress_cpt .google-snippet-preview").toggleClass("mobile-preview")}),t(),e("#seopress_launch_analysis").on("click",function(){t()}),sp_ca_toggle()});
assets/js/seopress-dashboard.js CHANGED
@@ -3,7 +3,7 @@ jQuery(document).ready(function($) {
3
  if (!$.trim( $("#seopress-notifications-center").html() )) {
4
  $('#seopress-notifications-center').remove();
5
  }
6
- const notices = ["notice-get-started","notice-wizard","notice-divide-comments","notice-review","notice-trailingslash","notice-posts-number","notice-rss-use-excerpt","notice-search-console","notice-google-business","notice-ssl","notice-title-tag", "notice-go-pro"]
7
  notices.forEach(function (item) {
8
  $('#'+item).on('click', function() {
9
  $('#'+item).attr('data-notice', $('#'+item).attr('data-notice') == '1' ? '0' : '1');
3
  if (!$.trim( $("#seopress-notifications-center").html() )) {
4
  $('#seopress-notifications-center').remove();
5
  }
6
+ const notices = ["notice-get-started","notice-wizard","notice-insights-wizard","notice-divide-comments","notice-review","notice-trailingslash","notice-posts-number","notice-rss-use-excerpt","notice-search-console","notice-google-business","notice-ssl","notice-title-tag", "notice-go-pro"]
7
  notices.forEach(function (item) {
8
  $('#'+item).on('click', function() {
9
  $('#'+item).attr('data-notice', $('#'+item).attr('data-notice') == '1' ? '0' : '1');
assets/js/seopress-dashboard.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(e){e.trim(e("#seopress-notifications-center").html())||e("#seopress-notifications-center").remove();["notice-get-started","notice-wizard","notice-divide-comments","notice-review","notice-trailingslash","notice-posts-number","notice-rss-use-excerpt","notice-search-console","notice-google-business","notice-ssl","notice-title-tag","notice-go-pro"].forEach(function(s){e("#"+s).on("click",function(){e("#"+s).attr("data-notice","1"==e("#"+s).attr("data-notice")?"0":"1"),e.ajax({method:"POST",url:seopressAjaxHideNotices.seopress_hide_notices,data:{action:"seopress_hide_notices",notice:s,notice_value:e("#"+s).attr("data-notice"),_ajax_nonce:seopressAjaxHideNotices.seopress_nonce},success:function(t){e("#seopress-notice-save").css("display","block"),e("#seopress-notice-save .html").html("Notice successfully removed"),e("#"+s+"-alert").fadeOut(),e("#seopress-notice-save").delay(3500).fadeOut()}})})});["titles","xml-sitemap","social","google-analytics","advanced","local-business","woocommerce","edd","dublin-core","rich-snippets","breadcrumbs","robots","news","404","bot","rewrite","white-label"].forEach(function(s){e("#toggle-"+s).on("click",function(){e("#toggle-"+s).attr("data-toggle","1"==e("#toggle-"+s).attr("data-toggle")?"0":"1"),e.ajax({method:"POST",url:seopressAjaxToggleFeatures.seopress_toggle_features,data:{action:"seopress_toggle_features",feature:"toggle-"+s,feature_value:e("#toggle-"+s).attr("data-toggle"),_ajax_nonce:seopressAjaxToggleFeatures.seopress_nonce},success:function(t){e("#seopress-notice-save").css("display","block"),e("#seopress-notice-save .html").html(s+" "+seopressAjaxToggleFeatures.i18n),e("#"+s+"-state").toggleClass("feature-state-on"),e("#"+s+"-state-default").toggleClass("feature-state-off"),e("#seopress-notice-save").delay(3500).fadeOut()}})})})});
1
+ jQuery(document).ready(function(e){e.trim(e("#seopress-notifications-center").html())||e("#seopress-notifications-center").remove();["notice-get-started","notice-wizard","notice-insights-wizard","notice-divide-comments","notice-review","notice-trailingslash","notice-posts-number","notice-rss-use-excerpt","notice-search-console","notice-google-business","notice-ssl","notice-title-tag","notice-go-pro"].forEach(function(s){e("#"+s).on("click",function(){e("#"+s).attr("data-notice","1"==e("#"+s).attr("data-notice")?"0":"1"),e.ajax({method:"POST",url:seopressAjaxHideNotices.seopress_hide_notices,data:{action:"seopress_hide_notices",notice:s,notice_value:e("#"+s).attr("data-notice"),_ajax_nonce:seopressAjaxHideNotices.seopress_nonce},success:function(t){e("#seopress-notice-save").css("display","block"),e("#seopress-notice-save .html").html("Notice successfully removed"),e("#"+s+"-alert").fadeOut(),e("#seopress-notice-save").delay(3500).fadeOut()}})})});["titles","xml-sitemap","social","google-analytics","advanced","local-business","woocommerce","edd","dublin-core","rich-snippets","breadcrumbs","robots","news","404","bot","rewrite","white-label"].forEach(function(s){e("#toggle-"+s).on("click",function(){e("#toggle-"+s).attr("data-toggle","1"==e("#toggle-"+s).attr("data-toggle")?"0":"1"),e.ajax({method:"POST",url:seopressAjaxToggleFeatures.seopress_toggle_features,data:{action:"seopress_toggle_features",feature:"toggle-"+s,feature_value:e("#toggle-"+s).attr("data-toggle"),_ajax_nonce:seopressAjaxToggleFeatures.seopress_nonce},success:function(t){e("#seopress-notice-save").css("display","block"),e("#seopress-notice-save .html").html(s+" "+seopressAjaxToggleFeatures.i18n),e("#"+s+"-state").toggleClass("feature-state-on"),e("#"+s+"-state-default").toggleClass("feature-state-off"),e("#seopress-notice-save").delay(3500).fadeOut()}})})})});
assets/js/seopress-network-tabs.js CHANGED
@@ -55,7 +55,7 @@ jQuery(document).ready(function($) {
55
  $('#seopress-flush-permalinks2').on('click', function() {
56
  $.ajax({
57
  method : 'GET',
58
- url : seopressAjaxResetPermalinks.seopress_flush_permalinks,
59
  data : {
60
  action: 'seopress_flush_permalinks',
61
  _ajax_nonce: seopressAjaxResetPermalinks.seopress_nonce,
55
  $('#seopress-flush-permalinks2').on('click', function() {
56
  $.ajax({
57
  method : 'GET',
58
+ url : seopressAjaxResetPermalinks.seopress_ajax_permalinks,
59
  data : {
60
  action: 'seopress_flush_permalinks',
61
  _ajax_nonce: seopressAjaxResetPermalinks.seopress_nonce,
assets/js/seopress-network-tabs.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(s){var e=window.location.hash.split("$");if("undefined"!=typeof sessionStorage){var a=sessionStorage.getItem("seopress_robots_tab");"1"==e[1]?(s("#tab_seopress_robots-tab").addClass("nav-tab-active"),s("#tab_seopress_robots").addClass("active")):"2"==e[1]?(s("#tab_seopress_htaccess-tab").addClass("nav-tab-active"),s("#tab_seopress_htaccess").addClass("active")):"3"==e[1]?(s("#tab_seopress_white_label-tab").addClass("nav-tab-active"),s("#tab_seopress_white_label").addClass("active")):a?(s("#seopress-tabs").find(".nav-tab.nav-tab-active").removeClass("nav-tab-active"),s("#seopress-tabs").find(".seopress-tab.active").removeClass("active"),s("#"+a.split("#tab=")+"-tab").addClass("nav-tab-active"),s("#"+a.split("#tab=")).addClass("active")):(s("#tab_seopress_robots-tab").addClass("nav-tab-active"),s("#tab_seopress_robots").addClass("active"))}s("#seopress-tabs").find("a.nav-tab").click(function(a){a.preventDefault();var t=s(this).attr("href").split("#tab=")[1];s("#seopress-tabs").find(".nav-tab.nav-tab-active").removeClass("nav-tab-active"),s("#"+t+"-tab").addClass("nav-tab-active"),1==e[1]?sessionStorage.setItem("seopress_robots_tab","tab_seopress_robots"):2==e[1]?sessionStorage.setItem("seopress_robots_tab","tab_seopress_htaccess"):3==e[1]?sessionStorage.setItem("seopress_white_label","tab_seopress_white_label"):sessionStorage.setItem("seopress_robots_tab",t),s("#seopress-tabs").find(".seopress-tab.active").removeClass("active"),s("#"+t).addClass("active")}),s("#seopress-tag-robots-1, #seopress-tag-robots-2, #seopress-tag-robots-3, #seopress-tag-robots-4, #seopress-tag-robots-5, #seopress-tag-robots-6, #seopress-tag-robots-7").click(function(){s(".seopress_robots_file").val(s(".seopress_robots_file").val()+"\n"+s(this).attr("data-tag"))}),s("#seopress-flush-permalinks2").on("click",function(){s.ajax({method:"GET",url:seopressAjaxResetPermalinks.seopress_flush_permalinks,data:{action:"seopress_flush_permalinks",_ajax_nonce:seopressAjaxResetPermalinks.seopress_nonce},success:function(s){window.location.reload(!0)}})}),s("#seopress-flush-permalinks2").on("click",function(){s(this).attr("disabled","disabled"),s(".spinner").css("visibility","visible"),s(".spinner").css("float","none")})});
1
+ jQuery(document).ready(function(s){var e=window.location.hash.split("$");if("undefined"!=typeof sessionStorage){var a=sessionStorage.getItem("seopress_robots_tab");"1"==e[1]?(s("#tab_seopress_robots-tab").addClass("nav-tab-active"),s("#tab_seopress_robots").addClass("active")):"2"==e[1]?(s("#tab_seopress_htaccess-tab").addClass("nav-tab-active"),s("#tab_seopress_htaccess").addClass("active")):"3"==e[1]?(s("#tab_seopress_white_label-tab").addClass("nav-tab-active"),s("#tab_seopress_white_label").addClass("active")):a?(s("#seopress-tabs").find(".nav-tab.nav-tab-active").removeClass("nav-tab-active"),s("#seopress-tabs").find(".seopress-tab.active").removeClass("active"),s("#"+a.split("#tab=")+"-tab").addClass("nav-tab-active"),s("#"+a.split("#tab=")).addClass("active")):(s("#tab_seopress_robots-tab").addClass("nav-tab-active"),s("#tab_seopress_robots").addClass("active"))}s("#seopress-tabs").find("a.nav-tab").click(function(a){a.preventDefault();var t=s(this).attr("href").split("#tab=")[1];s("#seopress-tabs").find(".nav-tab.nav-tab-active").removeClass("nav-tab-active"),s("#"+t+"-tab").addClass("nav-tab-active"),1==e[1]?sessionStorage.setItem("seopress_robots_tab","tab_seopress_robots"):2==e[1]?sessionStorage.setItem("seopress_robots_tab","tab_seopress_htaccess"):3==e[1]?sessionStorage.setItem("seopress_white_label","tab_seopress_white_label"):sessionStorage.setItem("seopress_robots_tab",t),s("#seopress-tabs").find(".seopress-tab.active").removeClass("active"),s("#"+t).addClass("active")}),s("#seopress-tag-robots-1, #seopress-tag-robots-2, #seopress-tag-robots-3, #seopress-tag-robots-4, #seopress-tag-robots-5, #seopress-tag-robots-6, #seopress-tag-robots-7").click(function(){s(".seopress_robots_file").val(s(".seopress_robots_file").val()+"\n"+s(this).attr("data-tag"))}),s("#seopress-flush-permalinks2").on("click",function(){s.ajax({method:"GET",url:seopressAjaxResetPermalinks.seopress_ajax_permalinks,data:{action:"seopress_flush_permalinks",_ajax_nonce:seopressAjaxResetPermalinks.seopress_nonce},success:function(s){window.location.reload(!0)}})}),s("#seopress-flush-permalinks2").on("click",function(){s(this).attr("disabled","disabled"),s(".spinner").css("visibility","visible"),s(".spinner").css("float","none")})});
assets/js/seopress-sitemap-ajax.js CHANGED
@@ -2,7 +2,7 @@ jQuery(document).ready(function($) {
2
  $('#seopress-flush-permalinks,#seopress-flush-permalinks2').on('click', function() {
3
  $.ajax({
4
  method : 'GET',
5
- url : seopressAjaxResetPermalinks.seopress_flush_permalinks,
6
  data: {
7
  action: 'seopress_flush_permalinks',
8
  _ajax_nonce: seopressAjaxResetPermalinks.seopress_nonce,
2
  $('#seopress-flush-permalinks,#seopress-flush-permalinks2').on('click', function() {
3
  $.ajax({
4
  method : 'GET',
5
+ url : seopressAjaxResetPermalinks.seopress_ajax_permalinks,
6
  data: {
7
  action: 'seopress_flush_permalinks',
8
  _ajax_nonce: seopressAjaxResetPermalinks.seopress_nonce,
assets/js/seopress-sitemap-ajax.min.js CHANGED
@@ -1 +1 @@
1
- jQuery(document).ready(function(s){s("#seopress-flush-permalinks,#seopress-flush-permalinks2").on("click",function(){s.ajax({method:"GET",url:seopressAjaxResetPermalinks.seopress_flush_permalinks,data:{action:"seopress_flush_permalinks",_ajax_nonce:seopressAjaxResetPermalinks.seopress_nonce},success:function(s){window.location.reload(!0)}})}),s("#seopress-flush-permalinks,#seopress-flush-permalinks2").on("click",function(){s(this).attr("disabled","disabled"),s(".spinner").css("visibility","visible"),s(".spinner").css("float","none")})});
1
+ jQuery(document).ready(function(s){s("#seopress-flush-permalinks,#seopress-flush-permalinks2").on("click",function(){s.ajax({method:"GET",url:seopressAjaxResetPermalinks.seopress_ajax_permalinks,data:{action:"seopress_flush_permalinks",_ajax_nonce:seopressAjaxResetPermalinks.seopress_nonce},success:function(s){window.location.reload(!0)}})}),s("#seopress-flush-permalinks,#seopress-flush-permalinks2").on("click",function(){s(this).attr("disabled","disabled"),s(".spinner").css("visibility","visible"),s(".spinner").css("float","none")})});
inc/admin/admin-features-list.php CHANGED
@@ -60,8 +60,8 @@
60
  ],
61
  'google-analytics' => [
62
  'icon' => 'dashicons-chart-area',
63
- 'title' => __('Google Analytics','wp-seopress'),
64
- 'desc' => __('Track everything about your visitors with Google Analytics', 'wp-seopress'),
65
  'btn_secondary' => [
66
  admin_url( 'admin.php?page=seopress-google-analytics' ) => __('Manage','wp-seopress')
67
  ],
@@ -84,6 +84,25 @@
84
  'filter' => 'seopress_remove_feature_advanced'
85
  ]
86
  ];
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  if (is_plugin_active('wp-seopress-pro/seopress-pro.php')) {
88
  $features['woocommerce'] = [
89
  'icon' => 'dashicons-cart',
60
  ],
61
  'google-analytics' => [
62
  'icon' => 'dashicons-chart-area',
63
+ 'title' => __('Analytics','wp-seopress'),
64
+ 'desc' => __('Track everything about your visitors with Google Analytics / Matomo', 'wp-seopress'),
65
  'btn_secondary' => [
66
  admin_url( 'admin.php?page=seopress-google-analytics' ) => __('Manage','wp-seopress')
67
  ],
84
  'filter' => 'seopress_remove_feature_advanced'
85
  ]
86
  ];
87
+ if (is_plugin_active('wp-seopress-insights/seopress-insights.php')) {
88
+ $features['insights'] = [
89
+ 'icon' => 'dashicons-chart-bar',
90
+ 'title' => __('Insights','wp-seopress'),
91
+ 'desc' => __('Track your keyword positions and backlinks directly in your WordPress.', 'wp-seopress'),
92
+ 'btn_secondary' => [
93
+ admin_url( 'admin.php?page=seopress-insights#tab=tab_seopress_insights_settings' ) => __('Manage','wp-seopress')
94
+ ],
95
+ 'help' => [
96
+ 'en' => 'https://www.seopress.org/insights/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=seopress',
97
+ 'fr' => 'https://www.seopress.org/fr/insights/?utm_source=plugin&utm_medium=wp-admin&utm_campaign=seopress',
98
+ 'title' => __('Read our guide','wp-seopress'),
99
+ 'aria' => __('Guide to optimize your WooCommerce SEO - new window','wp-seopress'),
100
+ 'external' => true
101
+ ],
102
+ 'toggle' => false,
103
+ 'filter' => 'seopress_remove_feature_insights'
104
+ ];
105
+ }
106
  if (is_plugin_active('wp-seopress-pro/seopress-pro.php')) {
107
  $features['woocommerce'] = [
108
  'icon' => 'dashicons-cart',
inc/admin/admin-header.php CHANGED
@@ -51,7 +51,7 @@ function seopress_admin_header() { ?>
51
  <li>
52
  <a href="<?php echo admin_url( 'admin.php?page=seopress-google-analytics' ); ?>">
53
  <span class="dashicons dashicons-chart-area"></span>
54
- <?php _e( 'Google Analytics', 'wp-seopress' ); ?>
55
  </a>
56
  </li>
57
  <li>
@@ -61,6 +61,15 @@ function seopress_admin_header() { ?>
61
  </a>
62
  </li>
63
  <?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
 
 
 
 
 
 
 
 
 
64
  if ( is_plugin_active( 'wp-seopress-pro/seopress-pro.php' ) ) { ?>
65
  <li>
66
  <a href="<?php echo admin_url( 'admin.php?page=seopress-pro-page#tab=tab_seopress_woocommerce' ); ?>">
51
  <li>
52
  <a href="<?php echo admin_url( 'admin.php?page=seopress-google-analytics' ); ?>">
53
  <span class="dashicons dashicons-chart-area"></span>
54
+ <?php _e( 'Analytics', 'wp-seopress' ); ?>
55
  </a>
56
  </li>
57
  <li>
61
  </a>
62
  </li>
63
  <?php include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
64
+ if ( is_plugin_active( 'wp-seopress-insights/seopress-insights.php' ) ) { ?>
65
+ <li>
66
+ <a href="<?php echo admin_url( 'admin.php?page=seopress-insights#tab=tab_seopress_insights_settings' ); ?>">
67
+ <span class="dashicons dashicons-chart-bar"></span>
68
+ <?php _e( 'Insights', 'wp-seopress' ); ?>
69
+ </a>
70
+ </li>
71
+ <?php
72
+ }
73
  if ( is_plugin_active( 'wp-seopress-pro/seopress-pro.php' ) ) { ?>
74
  <li>
75
  <a href="<?php echo admin_url( 'admin.php?page=seopress-pro-page#tab=tab_seopress_woocommerce' ); ?>">
inc/admin/admin-metaboxes-content-analysis-form.php CHANGED
@@ -10,12 +10,9 @@ echo '<div class="wrap-seopress-analysis">
10
  <div class="col-left">
11
  <p>
12
  <label for="seopress_analysis_target_kw_meta">'. __( 'Target keywords', 'wp-seopress' ) .'
13
- <span class="sp-tooltip">
14
- <span class="dashicons dashicons-editor-help"></span>
15
- <span class="sp-tooltiptext">'.__('Separate target keywords with commas. Do not use spaces after the commas, unless you want to include them (eg: "my super keyword,another keyword,keyword")','wp-seopress').'</span>
16
- </span>
17
  </label>
18
- <input id="seopress_analysis_target_kw_meta" type="text" name="seopress_analysis_target_kw" placeholder="'.esc_html__('Enter your target keywords','wp-seopress').'" aria-label="'.__('Target keywords','wp-seopress').'" value="'.$seopress_analysis_target_kw.'" />
19
  </p>';
20
  if (empty($seopress_analysis_data)) {
21
  echo '<div id="seopress_launch_analysis" class="button" data_id="'.get_the_ID().'" data_post_type="'.get_current_screen()->post_type.'">'.__('Analyze my content','wp-seopress').'</div>';
@@ -29,14 +26,11 @@ if ( is_plugin_active( 'wp-seopress-pro/seopress-pro.php' ) ) {
29
  echo '<div class="col-right">
30
  <p>
31
  <label for="seopress_google_suggest_kw_meta">'. __( 'Google suggestions', 'wp-seopress' ) .'
32
- <span class="sp-tooltip">
33
- <span class="dashicons dashicons-editor-help"></span>
34
- <span class="sp-tooltiptext">'.__('Enter a keyword, or a phrase, to find the top 10 Google suggestions instantly. This is useful if you want to work with the long tail technique.','wp-seopress').'</span>
35
- </span>
36
  </label>
37
  <input id="seopress_google_suggest_kw_meta" type="text" name="seopress_google_suggest_kw" placeholder="Get suggestions from Google" aria-label="Google suggestions" value="">
38
  </p>
39
- <button id="seopress_get_suggestions" class="button">'.__('Get suggestions!','wp-seopress').'</button>
40
  ';
41
  echo "<ul id='seopress_suggestions'></ul>";
42
 
@@ -158,11 +152,11 @@ $analyzes = array(
158
  );
159
 
160
  //Schemas
161
- if (!empty($seopress_analysis_data['0']['json']) && isset($seopress_analysis_data['0']['json'])) {
162
  $desc = '<p>'.__('We found these schemas in the source code of this page:','wp-seopress').'</p>';
163
 
164
  $desc .= '<ul>';
165
- $json_ld = array_filter($seopress_analysis_data['0']['json']);
166
  foreach(array_count_values($json_ld) as $key => $value) {
167
  $html = NULL;
168
  if ($value > 1) {
@@ -191,13 +185,13 @@ $analyzes['old_post']['desc'] = $desc;
191
 
192
  //Word counters
193
  $desc = NULL;
194
- if (isset($seopress_analysis_data['0']['words_counter']) || isset($seopress_analysis_data['0']['words_counter_unique'])) {
195
  $desc = '<p>'.__('Words counter is not a direct ranking factor. But, your content must be as qualitative as possible, with relevant and unique information. To fulfill these conditions, your article requires a minimum of paragraphs, so words.','wp-seopress').'</p>
196
  <ul>
197
- <li>'.$seopress_analysis_data['0']['words_counter'].' '.__('words found.','wp-seopress').'</li>
198
- <li>'.$seopress_analysis_data['0']['words_counter_unique'].' '.__('unique words found.','wp-seopress').'</li>';
199
 
200
- if ($seopress_analysis_data['0']['words_counter'] >= 299) {
201
  $desc .= '<li><span class="dashicons dashicons-yes"></span>'.__('Your content is composed of more than 300 words, which is the minimum for a post.','wp-seopress').'</li>';
202
  } else {
203
  $desc .= '<li><span class="dashicons dashicons-no-alt"></span>'.__('Your content is too short. Add a few more paragraphs!','wp-seopress').'</li>';
@@ -212,8 +206,8 @@ if (isset($seopress_analysis_data['0']['words_counter']) || isset($seopress_anal
212
  }
213
 
214
  //Keywords density
215
- if (!empty($seopress_analysis_data['0']['kws_density']['matches']) && isset($seopress_analysis_data['0']['words_counter'])) {
216
- $target_kws_density = $seopress_analysis_data['0']['kws_density']['matches'];
217
 
218
  $desc = '<ul>';
219
  foreach ($target_kws_density as $key => $value) {
@@ -221,7 +215,7 @@ if (!empty($seopress_analysis_data['0']['kws_density']['matches']) && isset($seo
221
  $kw_count = count($_value);
222
  }
223
  $kw_name = $key;
224
- $kw_density = round($kw_count/$seopress_analysis_data['0']['words_counter']*100, 2);
225
  $desc .= '<li><span class="dashicons dashicons-minus"></span>'.sprintf(esc_html__('%s was found %d times in your content, a keyword density of %s%%','wp-seopress'), $kw_name, $kw_count, $kw_density).'</li>';
226
  }
227
  $desc .= '</ul>';
@@ -234,10 +228,10 @@ if (!empty($seopress_analysis_data['0']['kws_density']['matches']) && isset($seo
234
  }
235
 
236
  //Keywords in permalink
237
- if (!empty($seopress_analysis_data['0']['kws_permalink']['matches'])) {
238
  $desc = '<p><span class="dashicons dashicons-yes"></span>'.__('Cool, one of your target keyword is used in your permalink.','wp-seopress').'</p>';
239
 
240
- $target_kws_permalink = $seopress_analysis_data['0']['kws_permalink']['matches'];
241
 
242
  $desc .= '<ul>';
243
  foreach ($target_kws_permalink as $key => $value) {
@@ -254,14 +248,14 @@ if (!empty($seopress_analysis_data['0']['kws_permalink']['matches'])) {
254
  //Headings
255
  //H1
256
  $desc = NULL;
257
- if (!empty($seopress_analysis_data['0']['h1']['matches'])) {
258
  $desc .= '<h4>'.__('H1 (Heading 1)','wp-seopress').'</h4>';
259
 
260
- $count = $seopress_analysis_data['0']['h1']['nomatches']['count'];
261
 
262
- $target_kws_h1 = $seopress_analysis_data['0']['h1']['matches'];
263
 
264
- $all_h1 = $seopress_analysis_data['0']['h1']['values'];
265
 
266
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in Heading 1 (H1).','wp-seopress').'</p>';
267
 
@@ -293,10 +287,10 @@ if (!empty($seopress_analysis_data['0']['h1']['matches'])) {
293
 
294
  //H2
295
  $desc .= '<h4>'.__('H2 (Heading 2)','wp-seopress').'</h4>';
296
- if (!empty($seopress_analysis_data['0']['h2']['matches'])) {
297
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in Heading 2 (H2).','wp-seopress').'</p>';
298
  $desc .= '<ul>';
299
- $target_kws_h2 = $seopress_analysis_data['0']['h2']['matches'];
300
  foreach ($target_kws_h2 as $key => $value) {
301
  foreach ($value as $_key => $_value) {
302
  $kw_count = count($value);
@@ -314,10 +308,10 @@ if (!empty($seopress_analysis_data['0']['h2']['matches'])) {
314
 
315
  //H3
316
  $desc .= '<h4>'.__('H3 (Heading 3)','wp-seopress').'</h4>';
317
- if (!empty($seopress_analysis_data['0']['h3']['matches'])) {
318
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in Heading 3 (H3).','wp-seopress').'</p>';
319
  $desc .= '<ul>';
320
- $target_kws_h3 = $seopress_analysis_data['0']['h3']['matches'];
321
  foreach ($target_kws_h3 as $key => $value) {
322
  foreach ($value as $_key => $_value) {
323
  $kw_count = count($value);
@@ -337,10 +331,10 @@ $analyzes['headings']['desc'] = $desc;
337
  //Meta Title
338
  if ($seopress_titles_title !='') {
339
  $desc = NULL;
340
- if (!empty($seopress_analysis_data['0']['meta_title']['matches'])) {
341
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in the Meta Title.','wp-seopress').'</p>';
342
  $desc .= '<ul>';
343
- $target_kws_title = $seopress_analysis_data['0']['meta_title']['matches'];
344
  foreach ($target_kws_title as $key => $value) {
345
  foreach ($value as $_key => $_value) {
346
  $kw_count = count($_value);
@@ -371,10 +365,10 @@ if ($seopress_titles_title !='') {
371
  //Meta description
372
  if ($seopress_titles_desc !='') {
373
  $desc = NULL;
374
- if (!empty($seopress_analysis_data['0']['meta_description']['matches'])) {
375
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in the Meta description.','wp-seopress').'</p>';
376
  $desc .= '<ul>';
377
- $target_kws_desc = $seopress_analysis_data['0']['meta_description']['matches'];
378
  foreach ($target_kws_desc as $key => $value) {
379
  foreach ($value as $_key => $_value) {
380
  $kw_count = count($_value);
@@ -408,10 +402,10 @@ $desc = NULL;
408
 
409
  $desc .= '<h4>'.__('Open Graph Title','wp-seopress').'</h4>';
410
 
411
- if (!empty($seopress_analysis_data['0']['og_title']['count'])) {
412
- $count = $seopress_analysis_data['0']['og_title']['count'];
413
 
414
- $all_og_title = $seopress_analysis_data['0']['og_title']['values'];
415
 
416
  if ($count > 1) {
417
  $analyzes['social']['impact'] = 'high';
@@ -436,11 +430,11 @@ if (!empty($seopress_analysis_data['0']['og_title']['count'])) {
436
  //og:description
437
  $desc .= '<h4>'.__('Open Graph Description','wp-seopress').'</h4>';
438
 
439
- if (!empty($seopress_analysis_data['0']['og_desc']['count'])) {
440
 
441
- $count = $seopress_analysis_data['0']['og_desc']['count'];
442
 
443
- $all_og_desc = $seopress_analysis_data['0']['og_desc']['values'];
444
 
445
  if ($count > 1) {
446
  $analyzes['social']['impact'] = 'high';
@@ -465,11 +459,11 @@ if (!empty($seopress_analysis_data['0']['og_desc']['count'])) {
465
  //og:image
466
  $desc .= '<h4>'.__('Open Graph Image','wp-seopress').'</h4>';
467
 
468
- if (!empty($seopress_analysis_data['0']['og_img']['count'])) {
469
 
470
- $count = $seopress_analysis_data['0']['og_img']['count'];
471
 
472
- $all_og_img = $seopress_analysis_data['0']['og_img']['values'];
473
 
474
  if ($count > 0) {
475
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.sprintf(esc_html__('We found %d og:image in your content.','wp-seopress'), $count).'</p>';
@@ -490,11 +484,11 @@ if (!empty($seopress_analysis_data['0']['og_img']['count'])) {
490
  //og:url
491
  $desc .= '<h4>'.__('Open Graph URL','wp-seopress').'</h4>';
492
 
493
- if (!empty($seopress_analysis_data['0']['og_url']['count'])) {
494
 
495
- $count = $seopress_analysis_data['0']['og_url']['count'];
496
 
497
- $all_og_url = $seopress_analysis_data['0']['og_url']['values'];
498
 
499
  if ($count > 1) {
500
  $analyzes['social']['impact'] = 'high';
@@ -519,11 +513,11 @@ if (!empty($seopress_analysis_data['0']['og_url']['count'])) {
519
  //og:site_name
520
  $desc .= '<h4>'.__('Open Graph Site Name','wp-seopress').'</h4>';
521
 
522
- if (!empty($seopress_analysis_data['0']['og_site_name']['count'])) {
523
 
524
- $count = $seopress_analysis_data['0']['og_site_name']['count'];
525
 
526
- $all_og_site_name = $seopress_analysis_data['0']['og_site_name']['values'];
527
 
528
  if ($count > 1) {
529
  $analyzes['social']['impact'] = 'high';
@@ -548,11 +542,11 @@ if (!empty($seopress_analysis_data['0']['og_site_name']['count'])) {
548
  //twitter:title
549
  $desc .= '<h4>'.__('Twitter Title','wp-seopress').'</h4>';
550
 
551
- if (!empty($seopress_analysis_data['0']['tw_title']['count'])) {
552
 
553
- $count = $seopress_analysis_data['0']['tw_title']['count'];
554
 
555
- $all_tw_title = $seopress_analysis_data['0']['tw_title']['values'];
556
 
557
  if ($count > 1) {
558
  $analyzes['social']['impact'] = 'high';
@@ -577,11 +571,11 @@ if (!empty($seopress_analysis_data['0']['tw_title']['count'])) {
577
  //twitter:description
578
  $desc .= '<h4>'.__('Twitter Description','wp-seopress').'</h4>';
579
 
580
- if (!empty($seopress_analysis_data['0']['tw_desc']['count'])) {
581
 
582
- $count = $seopress_analysis_data['0']['tw_desc']['count'];
583
 
584
- $all_tw_desc = $seopress_analysis_data['0']['tw_desc']['values'];
585
 
586
  if ($count > 1) {
587
  $analyzes['social']['impact'] = 'high';
@@ -606,11 +600,11 @@ if (!empty($seopress_analysis_data['0']['tw_desc']['count'])) {
606
  //twitter:image
607
  $desc .= '<h4>'.__('Twitter Image','wp-seopress').'</h4>';
608
 
609
- if (!empty($seopress_analysis_data['0']['tw_img']['count'])) {
610
 
611
- $count = $seopress_analysis_data['0']['tw_img']['count'];
612
 
613
- $all_tw_img = $seopress_analysis_data['0']['tw_img']['values'];
614
 
615
  if ($count > 0) {
616
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.sprintf(esc_html__('We found %d twitter:image in your content.','wp-seopress'), $count).'</p>';
@@ -631,14 +625,14 @@ $analyzes['social']['desc'] = $desc;
631
 
632
  //Robots
633
  $desc = NULL;
634
- if (!empty($seopress_analysis_data['0']['meta_robots'])) {
635
 
636
- $meta_robots = $seopress_analysis_data['0']['meta_robots']['0'];
637
 
638
- if (count($seopress_analysis_data['0']['meta_robots']) > 1) {
639
  $analyzes['robots']['impact'] = 'high';
640
 
641
- $count_meta_robots = count($seopress_analysis_data['0']['meta_robots']);
642
 
643
  $desc .= '<p><span class="dashicons dashicons-no-alt"></span>'.sprintf(esc_html__('We found %s meta robots in your page. There is probably something wrong with your theme!','wp-seopress'), $count_meta_robots).'</p>';
644
  }
@@ -679,8 +673,8 @@ if (!empty($seopress_analysis_data['0']['meta_robots'])) {
679
  }
680
 
681
  //Meta Google
682
- if (!empty($seopress_analysis_data['0']['meta_google'])) {
683
- $meta_google = $seopress_analysis_data['0']['meta_google'];
684
 
685
  if (preg_match('/noimageindex/', json_encode($meta_google))) {
686
  $analyzes['robots']['impact'] = 'high';
@@ -706,17 +700,17 @@ if (!empty($seopress_analysis_data['0']['meta_google'])) {
706
  $analyzes['robots']['desc'] = $desc;
707
 
708
  //Img alt
709
- if (!empty($seopress_analysis_data['0']['img'])) {
710
- $images = isset($seopress_analysis_data['0']['img']['images']) ? $seopress_analysis_data['0']['img']['images'] : NULL;
711
 
712
  $desc = '<div class="wrap-analysis-img">';
713
 
714
- if (isset($images) && !empty($images)) {
715
  $analyzes['img_alt']['impact'] = 'high';
716
  $desc .= '<p><span class="dashicons dashicons-no-alt"></span>'.__('No alternative text found for these images. Alt tags are important for both SEO and accessibility. Edit your images using the media library or your favorite page builder and fill in alternative text fields.','wp-seopress').'</p>';
717
 
718
  //Standard images & galleries
719
- if (isset($images) && !empty($images)) {
720
  $desc .= '<ul class="attachments">';
721
  foreach($images as $img) {
722
  $desc .= '<li class="attachment"><img src="'.$img.'"/></li>';
@@ -735,12 +729,12 @@ if (!empty($seopress_analysis_data['0']['img'])) {
735
  }
736
 
737
  //Nofollow links
738
- if (!empty($seopress_analysis_data['0']['nofollow_links'])) {
739
- $count = count($seopress_analysis_data['0']['nofollow_links']);
740
 
741
  $desc = '<p>'.sprintf( esc_html__( 'We found %d links with nofollow attribute in your page. Do not overuse nofollow attribute in links. Below, the list:', 'wp-seopress' ), $count ).'</p>';
742
  $desc .= '<ul>';
743
- foreach ($seopress_analysis_data['0']['nofollow_links'] as $links) {
744
  foreach ($links as $href => $link) {
745
  $desc .= '<li><span class="dashicons dashicons-minus"></span><a href="'.$href.'" target="_blank">'.$link.'</a><span class="dashicons dashicons-external"></span></li>';
746
  }
@@ -754,12 +748,12 @@ if (!empty($seopress_analysis_data['0']['nofollow_links'])) {
754
 
755
  //Outbound links
756
  $desc = '<p>'.__('Internet is built on the principle of hyperlink. It is therefore perfectly normal to make links between different websites. However, avoid making links to low quality sites, SPAM... If you are not sure about the quality of a site, add the attribute "nofollow" to your link.').'</p>';
757
- if (!empty($seopress_analysis_data['0']['outbound_links'])) {
758
- $count = count($seopress_analysis_data['0']['outbound_links']);
759
 
760
  $desc .= '<p>'.sprintf( __('We found %s outbound links in your page. Below, the list:', 'wp-seopress'), $count ).'</p>';
761
  $desc .= '<ul>';
762
- foreach ($seopress_analysis_data['0']['outbound_links'] as $links) {
763
  foreach ($links as $href => $link) {
764
  $desc .= '<li><span class="dashicons dashicons-minus"></span><a href="'.$href.'" target="_blank">'.$link.'</a><span class="dashicons dashicons-external"></span></li>';
765
  }
@@ -772,25 +766,32 @@ if (!empty($seopress_analysis_data['0']['outbound_links'])) {
772
  $analyzes['outbound_links']['desc'] = $desc;
773
 
774
  echo '<div id="seopress-analysis-tabs">
775
- <div id="seopress-analysis-tabs-1">
776
- <div class="analysis-score">';
777
  $impact = array_unique(array_values(wp_list_pluck($analyzes, 'impact')));
778
  $svg = '<svg role="img" aria-hidden="true" focusable="false" width="100%" height="100%" viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg">
779
  <circle r="90" cx="100" cy="100" fill="transparent" stroke-dasharray="565.48" stroke-dashoffset="0"></circle>
780
  <circle id="bar" r="90" cx="100" cy="100" fill="transparent" stroke-dasharray="565.48" stroke-dashoffset="0" style="stroke-dashoffset: 101.788px;"></circle>
781
  </svg>';
782
  $tooltip = '<span class="sp-tooltip">
783
- <span class="dashicons dashicons-editor-help"></span>
784
- <span class="sp-tooltiptext">'.__('<strong>Should be improved:</strong> red or orange dots <br> <strong>Good:</strong> yellow or green dots','wp-seopress').'</span>
785
- </span>';
786
- if (in_array('medium', $impact) || in_array('high', $impact)) {
787
- echo '<p class="notgood">'.$svg.'<span>'.__('Should be improved','wp-seopress').$tooltip.'</span></p>';
788
- $seopress_analysis_data['0']['score'] = false;
 
 
 
 
 
 
789
  } else {
790
- echo '<p class="good">'.$svg.'<span>'.__('Good','wp-seopress').$tooltip.'</span></p>';
791
- $seopress_analysis_data['0']['score'] = true;
792
  }
 
793
  if (!empty($seopress_analysis_data)) {
 
794
  update_post_meta(get_the_ID(), '_seopress_analysis_data', $seopress_analysis_data);
795
  }
796
  echo '<span><a href="#" id="expand-all">'.__('Expand','wp-seopress').'</a> / <a href="#" id="close-all">'.__('Close','wp-seopress').'</a></span>';
@@ -803,7 +804,7 @@ $analyzes['outbound_links']['desc'] = $desc;
803
  $pos_a = array_search($a['impact'], $order);
804
  $pos_b = array_search($b['impact'], $order);
805
  return $pos_a - $pos_b;
806
- });
807
 
808
  foreach($analyzes as $key => $value) {
809
  echo '<div class="gr-analysis">';
10
  <div class="col-left">
11
  <p>
12
  <label for="seopress_analysis_target_kw_meta">'. __( 'Target keywords', 'wp-seopress' ) .'
13
+ '. seopress_tooltip(__('Target keywords','wp-seopress'), __('Separate target keywords with commas. Do not use spaces after the commas, unless you want to include them','wp-seopress'), esc_html('my super keyword,another keyword,keyword')).'
 
 
 
14
  </label>
15
+ <input id="seopress_analysis_target_kw_meta" type="text" name="seopress_analysis_target_kw" placeholder="'.esc_html__('Enter your target keywords','wp-seopress').'" aria-label="'.__('Target keywords','wp-seopress').'" value="'.esc_attr($seopress_analysis_target_kw).'" />
16
  </p>';
17
  if (empty($seopress_analysis_data)) {
18
  echo '<div id="seopress_launch_analysis" class="button" data_id="'.get_the_ID().'" data_post_type="'.get_current_screen()->post_type.'">'.__('Analyze my content','wp-seopress').'</div>';
26
  echo '<div class="col-right">
27
  <p>
28
  <label for="seopress_google_suggest_kw_meta">'. __( 'Google suggestions', 'wp-seopress' ) .'
29
+ '. seopress_tooltip(__('Google suggestions','wp-seopress'), __('Enter a keyword, or a phrase, to find the top 10 Google suggestions instantly. This is useful if you want to work with the long tail technique.','wp-seopress'), esc_html('my super keyword,another keyword,keyword')).'
 
 
 
30
  </label>
31
  <input id="seopress_google_suggest_kw_meta" type="text" name="seopress_google_suggest_kw" placeholder="Get suggestions from Google" aria-label="Google suggestions" value="">
32
  </p>
33
+ <button id="seopress_get_suggestions" type="button" class="button">'.__('Get suggestions!','wp-seopress').'</button>
34
  ';
35
  echo "<ul id='seopress_suggestions'></ul>";
36
 
152
  );
153
 
154
  //Schemas
155
+ if (!empty($seopress_analysis_data['json']) || isset($seopress_analysis_data['json'])) {
156
  $desc = '<p>'.__('We found these schemas in the source code of this page:','wp-seopress').'</p>';
157
 
158
  $desc .= '<ul>';
159
+ $json_ld = array_filter($seopress_analysis_data['json']);
160
  foreach(array_count_values($json_ld) as $key => $value) {
161
  $html = NULL;
162
  if ($value > 1) {
185
 
186
  //Word counters
187
  $desc = NULL;
188
+ if (isset($seopress_analysis_data['words_counter']) || isset($seopress_analysis_data['words_counter_unique'])) {
189
  $desc = '<p>'.__('Words counter is not a direct ranking factor. But, your content must be as qualitative as possible, with relevant and unique information. To fulfill these conditions, your article requires a minimum of paragraphs, so words.','wp-seopress').'</p>
190
  <ul>
191
+ <li>'.$seopress_analysis_data['words_counter'].' '.__('words found.','wp-seopress').'</li>
192
+ <li>'.$seopress_analysis_data['words_counter_unique'].' '.__('unique words found.','wp-seopress').'</li>';
193
 
194
+ if ($seopress_analysis_data['words_counter'] >= 299) {
195
  $desc .= '<li><span class="dashicons dashicons-yes"></span>'.__('Your content is composed of more than 300 words, which is the minimum for a post.','wp-seopress').'</li>';
196
  } else {
197
  $desc .= '<li><span class="dashicons dashicons-no-alt"></span>'.__('Your content is too short. Add a few more paragraphs!','wp-seopress').'</li>';
206
  }
207
 
208
  //Keywords density
209
+ if (!empty($seopress_analysis_data['kws_density']['matches']) && isset($seopress_analysis_data['words_counter'])) {
210
+ $target_kws_density = $seopress_analysis_data['kws_density']['matches'];
211
 
212
  $desc = '<ul>';
213
  foreach ($target_kws_density as $key => $value) {
215
  $kw_count = count($_value);
216
  }
217
  $kw_name = $key;
218
+ $kw_density = round($kw_count/$seopress_analysis_data['words_counter']*100, 2);
219
  $desc .= '<li><span class="dashicons dashicons-minus"></span>'.sprintf(esc_html__('%s was found %d times in your content, a keyword density of %s%%','wp-seopress'), $kw_name, $kw_count, $kw_density).'</li>';
220
  }
221
  $desc .= '</ul>';
228
  }
229
 
230
  //Keywords in permalink
231
+ if (!empty($seopress_analysis_data['kws_permalink']['matches'])) {
232
  $desc = '<p><span class="dashicons dashicons-yes"></span>'.__('Cool, one of your target keyword is used in your permalink.','wp-seopress').'</p>';
233
 
234
+ $target_kws_permalink = $seopress_analysis_data['kws_permalink']['matches'];
235
 
236
  $desc .= '<ul>';
237
  foreach ($target_kws_permalink as $key => $value) {
248
  //Headings
249
  //H1
250
  $desc = NULL;
251
+ if (!empty($seopress_analysis_data['h1']['matches'])) {
252
  $desc .= '<h4>'.__('H1 (Heading 1)','wp-seopress').'</h4>';
253
 
254
+ $count = $seopress_analysis_data['h1']['nomatches']['count'];
255
 
256
+ $target_kws_h1 = $seopress_analysis_data['h1']['matches'];
257
 
258
+ $all_h1 = $seopress_analysis_data['h1']['values'];
259
 
260
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in Heading 1 (H1).','wp-seopress').'</p>';
261
 
287
 
288
  //H2
289
  $desc .= '<h4>'.__('H2 (Heading 2)','wp-seopress').'</h4>';
290
+ if (!empty($seopress_analysis_data['h2']['matches'])) {
291
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in Heading 2 (H2).','wp-seopress').'</p>';
292
  $desc .= '<ul>';
293
+ $target_kws_h2 = $seopress_analysis_data['h2']['matches'];
294
  foreach ($target_kws_h2 as $key => $value) {
295
  foreach ($value as $_key => $_value) {
296
  $kw_count = count($value);
308
 
309
  //H3
310
  $desc .= '<h4>'.__('H3 (Heading 3)','wp-seopress').'</h4>';
311
+ if (!empty($seopress_analysis_data['h3']['matches'])) {
312
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in Heading 3 (H3).','wp-seopress').'</p>';
313
  $desc .= '<ul>';
314
+ $target_kws_h3 = $seopress_analysis_data['h3']['matches'];
315
  foreach ($target_kws_h3 as $key => $value) {
316
  foreach ($value as $_key => $_value) {
317
  $kw_count = count($value);
331
  //Meta Title
332
  if ($seopress_titles_title !='') {
333
  $desc = NULL;
334
+ if (!empty($seopress_analysis_data['meta_title']['matches'])) {
335
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in the Meta Title.','wp-seopress').'</p>';
336
  $desc .= '<ul>';
337
+ $target_kws_title = $seopress_analysis_data['meta_title']['matches'];
338
  foreach ($target_kws_title as $key => $value) {
339
  foreach ($value as $_key => $_value) {
340
  $kw_count = count($_value);
365
  //Meta description
366
  if ($seopress_titles_desc !='') {
367
  $desc = NULL;
368
+ if (!empty($seopress_analysis_data['meta_description']['matches'])) {
369
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.__('Target keywords were found in the Meta description.','wp-seopress').'</p>';
370
  $desc .= '<ul>';
371
+ $target_kws_desc = $seopress_analysis_data['meta_description']['matches'];
372
  foreach ($target_kws_desc as $key => $value) {
373
  foreach ($value as $_key => $_value) {
374
  $kw_count = count($_value);
402
 
403
  $desc .= '<h4>'.__('Open Graph Title','wp-seopress').'</h4>';
404
 
405
+ if (!empty($seopress_analysis_data['og_title']['count'])) {
406
+ $count = $seopress_analysis_data['og_title']['count'];
407
 
408
+ $all_og_title = $seopress_analysis_data['og_title']['values'];
409
 
410
  if ($count > 1) {
411
  $analyzes['social']['impact'] = 'high';
430
  //og:description
431
  $desc .= '<h4>'.__('Open Graph Description','wp-seopress').'</h4>';
432
 
433
+ if (!empty($seopress_analysis_data['og_desc']['count'])) {
434
 
435
+ $count = $seopress_analysis_data['og_desc']['count'];
436
 
437
+ $all_og_desc = $seopress_analysis_data['og_desc']['values'];
438
 
439
  if ($count > 1) {
440
  $analyzes['social']['impact'] = 'high';
459
  //og:image
460
  $desc .= '<h4>'.__('Open Graph Image','wp-seopress').'</h4>';
461
 
462
+ if (!empty($seopress_analysis_data['og_img']['count'])) {
463
 
464
+ $count = $seopress_analysis_data['og_img']['count'];
465
 
466
+ $all_og_img = $seopress_analysis_data['og_img']['values'];
467
 
468
  if ($count > 0) {
469
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.sprintf(esc_html__('We found %d og:image in your content.','wp-seopress'), $count).'</p>';
484
  //og:url
485
  $desc .= '<h4>'.__('Open Graph URL','wp-seopress').'</h4>';
486
 
487
+ if (!empty($seopress_analysis_data['og_url']['count'])) {
488
 
489
+ $count = $seopress_analysis_data['og_url']['count'];
490
 
491
+ $all_og_url = $seopress_analysis_data['og_url']['values'];
492
 
493
  if ($count > 1) {
494
  $analyzes['social']['impact'] = 'high';
513
  //og:site_name
514
  $desc .= '<h4>'.__('Open Graph Site Name','wp-seopress').'</h4>';
515
 
516
+ if (!empty($seopress_analysis_data['og_site_name']['count'])) {
517
 
518
+ $count = $seopress_analysis_data['og_site_name']['count'];
519
 
520
+ $all_og_site_name = $seopress_analysis_data['og_site_name']['values'];
521
 
522
  if ($count > 1) {
523
  $analyzes['social']['impact'] = 'high';
542
  //twitter:title
543
  $desc .= '<h4>'.__('Twitter Title','wp-seopress').'</h4>';
544
 
545
+ if (!empty($seopress_analysis_data['tw_title']['count'])) {
546
 
547
+ $count = $seopress_analysis_data['tw_title']['count'];
548
 
549
+ $all_tw_title = $seopress_analysis_data['tw_title']['values'];
550
 
551
  if ($count > 1) {
552
  $analyzes['social']['impact'] = 'high';
571
  //twitter:description
572
  $desc .= '<h4>'.__('Twitter Description','wp-seopress').'</h4>';
573
 
574
+ if (!empty($seopress_analysis_data['tw_desc']['count'])) {
575
 
576
+ $count = $seopress_analysis_data['tw_desc']['count'];
577
 
578
+ $all_tw_desc = $seopress_analysis_data['tw_desc']['values'];
579
 
580
  if ($count > 1) {
581
  $analyzes['social']['impact'] = 'high';
600
  //twitter:image
601
  $desc .= '<h4>'.__('Twitter Image','wp-seopress').'</h4>';
602
 
603
+ if (!empty($seopress_analysis_data['tw_img']['count'])) {
604
 
605
+ $count = $seopress_analysis_data['tw_img']['count'];
606
 
607
+ $all_tw_img = $seopress_analysis_data['tw_img']['values'];
608
 
609
  if ($count > 0) {
610
  $desc .= '<p><span class="dashicons dashicons-yes"></span>'.sprintf(esc_html__('We found %d twitter:image in your content.','wp-seopress'), $count).'</p>';
625
 
626
  //Robots
627
  $desc = NULL;
628
+ if (!empty($seopress_analysis_data['meta_robots'])) {
629
 
630
+ $meta_robots = $seopress_analysis_data['meta_robots'];
631
 
632
+ if (count($seopress_analysis_data['meta_robots']) > 1) {
633
  $analyzes['robots']['impact'] = 'high';
634
 
635
+ $count_meta_robots = count($seopress_analysis_data['meta_robots']);
636
 
637
  $desc .= '<p><span class="dashicons dashicons-no-alt"></span>'.sprintf(esc_html__('We found %s meta robots in your page. There is probably something wrong with your theme!','wp-seopress'), $count_meta_robots).'</p>';
638
  }
673
  }
674
 
675
  //Meta Google
676
+ if (!empty($seopress_analysis_data['meta_google'])) {
677
+ $meta_google = $seopress_analysis_data['meta_google'];
678
 
679
  if (preg_match('/noimageindex/', json_encode($meta_google))) {
680
  $analyzes['robots']['impact'] = 'high';
700
  $analyzes['robots']['desc'] = $desc;
701
 
702
  //Img alt
703
+ if (!empty($seopress_analysis_data['img'])) {
704
+ $images = isset($seopress_analysis_data['img']['images']) ? $seopress_analysis_data['img']['images'] : NULL;
705
 
706
  $desc = '<div class="wrap-analysis-img">';
707
 
708
+ if (!empty($images)) {
709
  $analyzes['img_alt']['impact'] = 'high';
710
  $desc .= '<p><span class="dashicons dashicons-no-alt"></span>'.__('No alternative text found for these images. Alt tags are important for both SEO and accessibility. Edit your images using the media library or your favorite page builder and fill in alternative text fields.','wp-seopress').'</p>';
711
 
712
  //Standard images & galleries
713
+ if (!empty($images)) {
714
  $desc .= '<ul class="attachments">';
715
  foreach($images as $img) {
716
  $desc .= '<li class="attachment"><img src="'.$img.'"/></li>';
729
  }
730
 
731
  //Nofollow links
732
+ if (!empty($seopress_analysis_data['nofollow_links'])) {
733
+ $count = count($seopress_analysis_data['nofollow_links']);
734
 
735
  $desc = '<p>'.sprintf( esc_html__( 'We found %d links with nofollow attribute in your page. Do not overuse nofollow attribute in links. Below, the list:', 'wp-seopress' ), $count ).'</p>';
736
  $desc .= '<ul>';
737
+ foreach ($seopress_analysis_data['nofollow_links'] as $links) {
738
  foreach ($links as $href => $link) {
739
  $desc .= '<li><span class="dashicons dashicons-minus"></span><a href="'.$href.'" target="_blank">'.$link.'</a><span class="dashicons dashicons-external"></span></li>';
740
  }
748
 
749
  //Outbound links
750
  $desc = '<p>'.__('Internet is built on the principle of hyperlink. It is therefore perfectly normal to make links between different websites. However, avoid making links to low quality sites, SPAM... If you are not sure about the quality of a site, add the attribute "nofollow" to your link.').'</p>';
751
+ if (!empty($seopress_analysis_data['outbound_links'])) {
752
+ $count = count($seopress_analysis_data['outbound_links']);
753
 
754
  $desc .= '<p>'.sprintf( __('We found %s outbound links in your page. Below, the list:', 'wp-seopress'), $count ).'</p>';
755
  $desc .= '<ul>';
756
+ foreach ($seopress_analysis_data['outbound_links'] as $links) {
757
  foreach ($links as $href => $link) {
758
  $desc .= '<li><span class="dashicons dashicons-minus"></span><a href="'.$href.'" target="_blank">'.$link.'</a><span class="dashicons dashicons-external"></span></li>';
759
  }
766
  $analyzes['outbound_links']['desc'] = $desc;
767
 
768
  echo '<div id="seopress-analysis-tabs">
769
+ <div id="seopress-analysis-tabs-1">';
770
+ echo '<div class="analysis-score">';
771
  $impact = array_unique(array_values(wp_list_pluck($analyzes, 'impact')));
772
  $svg = '<svg role="img" aria-hidden="true" focusable="false" width="100%" height="100%" viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg">
773
  <circle r="90" cx="100" cy="100" fill="transparent" stroke-dasharray="565.48" stroke-dashoffset="0"></circle>
774
  <circle id="bar" r="90" cx="100" cy="100" fill="transparent" stroke-dasharray="565.48" stroke-dashoffset="0" style="stroke-dashoffset: 101.788px;"></circle>
775
  </svg>';
776
  $tooltip = '<span class="sp-tooltip">
777
+ <span class="dashicons dashicons-editor-help"></span>
778
+ <span class="sp-tooltiptext">'.__('<strong>Should be improved:</strong> red or orange dots <br> <strong>Good:</strong> yellow or green dots','wp-seopress').'</span>
779
+ </span>';
780
+
781
+ if (!empty($impact)) {
782
+ if (in_array('medium', $impact) || in_array('high', $impact)) {
783
+ echo '<p class="notgood">'.$svg.'<span>'.__('Should be improved','wp-seopress').$tooltip.'</span></p>';
784
+ $score = false;
785
+ } else {
786
+ echo '<p class="good">'.$svg.'<span>'.__('Good','wp-seopress').$tooltip.'</span></p>';
787
+ $score = true;
788
+ }
789
  } else {
790
+ $score = false;
 
791
  }
792
+
793
  if (!empty($seopress_analysis_data)) {
794
+ $seopress_analysis_data['score'] = $score;
795
  update_post_meta(get_the_ID(), '_seopress_analysis_data', $seopress_analysis_data);
796
  }
797
  echo '<span><a href="#" id="expand-all">'.__('Expand','wp-seopress').'</a> / <a href="#" id="close-all">'.__('Close','wp-seopress').'</a></span>';
804
  $pos_a = array_search($a['impact'], $order);
805
  $pos_b = array_search($b['impact'], $order);
806
  return $pos_a - $pos_b;
807
+ });
808
 
809
  foreach($analyzes as $key => $value) {
810
  echo '<div class="gr-analysis">';
inc/admin/admin-metaboxes-form.php CHANGED
@@ -530,18 +530,18 @@ echo '<div id="seopress-tabs" data_id="'.$current_id.'" data_origin="'.$origin.'
530
  <div id="wrap-videos" data-count="'.$total.'">';
531
  foreach ($seopress_video[0] as $key => $value) {
532
 
533
- $check_url = isset($seopress_video[0][$key]["url"]) ? $seopress_video[0][$key]["url"] : NULL;
534
- $check_internal_video = isset($seopress_video[0][$key]["internal_video"]) ? $seopress_video[0][$key]["internal_video"] : NULL;
535
- $check_title = isset($seopress_video[0][$key]["title"]) ? $seopress_video[0][$key]["title"] : NULL;
536
- $check_desc = isset($seopress_video[0][$key]["desc"]) ? $seopress_video[0][$key]["desc"] : NULL;
537
- $check_thumbnail = isset($seopress_video[0][$key]["thumbnail"]) ? $seopress_video[0][$key]["thumbnail"] : NULL;
538
- $check_duration = isset($seopress_video[0][$key]["duration"]) ? $seopress_video[0][$key]["duration"] : NULL;
539
- $check_rating = isset($seopress_video[0][$key]["rating"]) ? $seopress_video[0][$key]["rating"] : NULL;
540
- $check_view_count = isset($seopress_video[0][$key]["view_count"]) ? $seopress_video[0][$key]["view_count"] : NULL;
541
- $check_view_count = isset($seopress_video[0][$key]["view_count"]) ? $seopress_video[0][$key]["view_count"] : NULL;
542
- $check_tag = isset($seopress_video[0][$key]["tag"]) ? $seopress_video[0][$key]["tag"] : NULL;
543
- $check_cat = isset($seopress_video[0][$key]["cat"]) ? $seopress_video[0][$key]["cat"] : NULL;
544
- $check_family_friendly = isset($seopress_video[0][$key]["family_friendly"]) ? $seopress_video[0][$key]["family_friendly"] : NULL;
545
 
546
  echo '<div class="video">
547
  <h3 class="accordion-section-title" tabindex="0">'.__('Video ','wp-seopress').$check_title.'</h3>
530
  <div id="wrap-videos" data-count="'.$total.'">';
531
  foreach ($seopress_video[0] as $key => $value) {
532
 
533
+ $check_url = isset($seopress_video[0][$key]["url"]) ? esc_attr($seopress_video[0][$key]["url"]) : NULL;
534
+ $check_internal_video = isset($seopress_video[0][$key]["internal_video"]) ? esc_attr($seopress_video[0][$key]["internal_video"]) : NULL;
535
+ $check_title = isset($seopress_video[0][$key]["title"]) ? esc_attr($seopress_video[0][$key]["title"]) : NULL;
536
+ $check_desc = isset($seopress_video[0][$key]["desc"]) ? esc_attr($seopress_video[0][$key]["desc"]) : NULL;
537
+ $check_thumbnail = isset($seopress_video[0][$key]["thumbnail"]) ? esc_attr($seopress_video[0][$key]["thumbnail"]) : NULL;
538
+ $check_duration = isset($seopress_video[0][$key]["duration"]) ? esc_attr($seopress_video[0][$key]["duration"]) : NULL;
539
+ $check_rating = isset($seopress_video[0][$key]["rating"]) ? esc_attr($seopress_video[0][$key]["rating"]) : NULL;
540
+ $check_view_count = isset($seopress_video[0][$key]["view_count"]) ? esc_attr($seopress_video[0][$key]["view_count"]) : NULL;
541
+ $check_view_count = isset($seopress_video[0][$key]["view_count"]) ? esc_attr($seopress_video[0][$key]["view_count"]) : NULL;
542
+ $check_tag = isset($seopress_video[0][$key]["tag"]) ? esc_attr($seopress_video[0][$key]["tag"]) : NULL;
543
+ $check_cat = isset($seopress_video[0][$key]["cat"]) ? esc_attr($seopress_video[0][$key]["cat"]) : NULL;
544
+ $check_family_friendly = isset($seopress_video[0][$key]["family_friendly"]) ? esc_attr($seopress_video[0][$key]["family_friendly"]) : NULL;
545
 
546
  echo '<div class="video">
547
  <h3 class="accordion-section-title" tabindex="0">'.__('Video ','wp-seopress').$check_title.'</h3>
inc/admin/admin-metaboxes.php CHANGED
@@ -444,7 +444,7 @@ function seopress_display_ca_metaboxe() {
444
  wp_localize_script( 'seopress-cpt-counters-js', 'seopressAjaxRealPreview', $seopress_real_preview );
445
 
446
  $seopress_analysis_target_kw = get_post_meta($post->ID,'_seopress_analysis_target_kw',true);
447
- $seopress_analysis_data = get_post_meta($post->ID,'_seopress_analysis_data');
448
  $seopress_titles_title = get_post_meta($post->ID,'_seopress_titles_title',true);
449
  $seopress_titles_desc = get_post_meta($post->ID,'_seopress_titles_desc',true);
450
 
444
  wp_localize_script( 'seopress-cpt-counters-js', 'seopressAjaxRealPreview', $seopress_real_preview );
445
 
446
  $seopress_analysis_target_kw = get_post_meta($post->ID,'_seopress_analysis_target_kw',true);
447
+ $seopress_analysis_data = get_post_meta($post->ID,'_seopress_analysis_data', true);
448
  $seopress_titles_title = get_post_meta($post->ID,'_seopress_titles_title',true);
449
  $seopress_titles_desc = get_post_meta($post->ID,'_seopress_titles_desc',true);
450
 
inc/admin/admin-notifications-center.php CHANGED
@@ -109,6 +109,36 @@
109
  ];
110
  seopress_notification($args);
111
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
  if (get_theme_support('title-tag') !='1') {
113
  function seopress_get_hidden_notices_title_tag_option() {
114
  $seopress_get_hidden_notices_title_tag_option = get_option("seopress_notices");
@@ -400,7 +430,7 @@
400
  $args = [
401
  'id' => 'notice-posts-number',
402
  'title' => __('Display more posts per page on homepage and archives','wp-seopress'),
403
- 'desc' => __('To reduce the number pages search engines have to crawl to find all your articles, it is recommended displaying more posts per page. This should not be a problem for your users. Using mobile, we prefer to scroll down rather than clicking on next page links. If you can do it, try adding an infinite scroll to your post listings.','wp-seopress'),
404
  'impact' => [
405
  'medium' => __('Medium impact','wp-seopress')
406
  ],
@@ -618,7 +648,7 @@
618
  }
619
  ?>
620
  <br>
621
- <button id="seopress-reverse-submit" class="button button-primary" name="submit">
622
  <?php _e('Get list','wp-seopress'); ?>
623
  </button>
624
 
109
  ];
110
  seopress_notification($args);
111
  }
112
+ if (is_plugin_active('wp-seopress-insights/seopress-insights.php')) {
113
+ function seopress_get_hidden_notices_insights_wizard_option() {
114
+ $seopress_get_hidden_notices_insights_wizard_option = get_option("seopress_notices");
115
+ if ( ! empty ( $seopress_get_hidden_notices_insights_wizard_option ) ) {
116
+ foreach ($seopress_get_hidden_notices_insights_wizard_option as $key => $seopress_get_hidden_notices_insights_wizard_value)
117
+ $options[$key] = $seopress_get_hidden_notices_insights_wizard_value;
118
+ if (isset($seopress_get_hidden_notices_insights_wizard_option['notice-insights-wizard'])) {
119
+ return $seopress_get_hidden_notices_insights_wizard_option['notice-insights-wizard'];
120
+ }
121
+ }
122
+ }
123
+ if(seopress_get_hidden_notices_insights_wizard_option() !='1') {
124
+ $args = [
125
+ 'id' => 'notice-insights-wizard',
126
+ 'title' => __('Configure SEOPress Insights in a few minutes with our installation wizard','wp-seopress'),
127
+ 'desc' => __('Track your keywords positions and backlinks directly on your WordPress site.','wp-seopress'),
128
+ 'impact' => [
129
+ 'info' => __('Wizard','wp-seopress')
130
+ ],
131
+ 'link' => [
132
+ 'en' => admin_url( 'admin.php?page=seopress-insights-setup' ),
133
+ 'title' => __('Start the wizard','wp-seopress'),
134
+ 'external' => true
135
+ ],
136
+ 'icon' => 'dashicons-admin-tools',
137
+ 'deleteable' => true
138
+ ];
139
+ seopress_notification($args);
140
+ }
141
+ }
142
  if (get_theme_support('title-tag') !='1') {
143
  function seopress_get_hidden_notices_title_tag_option() {
144
  $seopress_get_hidden_notices_title_tag_option = get_option("seopress_notices");
430
  $args = [
431
  'id' => 'notice-posts-number',
432
  'title' => __('Display more posts per page on homepage and archives','wp-seopress'),
433
+ 'desc' => __('To reduce the number pages search engines have to crawl to find all your articles, it is recommended displaying more posts per page. This should not be a problem for your users. Using mobile, we prefer to scroll down rather than clicking on next page links.','wp-seopress'),
434
  'impact' => [
435
  'medium' => __('Medium impact','wp-seopress')
436
  ],
648
  }
649
  ?>
650
  <br>
651
+ <button id="seopress-reverse-submit" type="button" class="button button-primary" name="submit">
652
  <?php _e('Get list','wp-seopress'); ?>
653
  </button>
654
 
inc/admin/admin-wizard.php CHANGED
@@ -299,7 +299,7 @@ class SEOPRESS_Admin_Setup_Wizard {
299
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
300
  </ul>
301
  <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will delete / update all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Yoast data.', 'wp-seopress' ); ?></p>
302
- <button id="seopress-yoast-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
303
  <span class="spinner"></span>
304
  <div class="log"></div>
305
  </div><!-- .postbox -->
@@ -316,7 +316,7 @@ class SEOPRESS_Admin_Setup_Wizard {
316
  <li><?php _e('Meta Robots (noindex, nofollow)','wp-seopress'); ?></li>
317
  </ul>
318
  <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update/delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any AIO data.', 'wp-seopress' ); ?></p>
319
- <button id="seopress-aio-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
320
  <span class="spinner"></span>
321
  <div class="log"></div>
322
  </div><!-- .postbox -->
@@ -335,7 +335,7 @@ class SEOPRESS_Admin_Setup_Wizard {
335
  <li><?php _e('Redirect URL','wp-seopress'); ?></li>
336
  </ul>
337
  <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any SEO Framework data.', 'wp-seopress' ); ?></p>
338
- <button id="seopress-seo-framework-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
339
  <span class="spinner"></span>
340
  <div class="log"></div>
341
  </div><!-- .postbox -->
@@ -354,7 +354,7 @@ class SEOPRESS_Admin_Setup_Wizard {
354
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
355
  </ul>
356
  <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Rank Math data.', 'wp-seopress' ); ?></p>
357
- <button id="seopress-rk-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
358
  <span class="spinner"></span>
359
  <div class="log"></div>
360
  </div><!-- .postbox -->
@@ -372,7 +372,7 @@ class SEOPRESS_Admin_Setup_Wizard {
372
  <li><?php _e('Canonical URL','wp-seopress'); ?></li>
373
  </ul>
374
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any Squirrly SEO data.', 'wp-seopress' ); ?></p>
375
- <button id="seopress-squirrly-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
376
  <span class="spinner"></span>
377
  <div class="log"></div>
378
  </div><!-- .postbox -->
@@ -389,7 +389,7 @@ class SEOPRESS_Admin_Setup_Wizard {
389
  <li><?php _e('Meta Robots (noindex or nofollow)','wp-seopress'); ?></li>
390
  </ul>
391
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any SEO Ultimate data.', 'wp-seopress' ); ?></p>
392
- <button id="seopress-seo-ultimate-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
393
  <span class="spinner"></span>
394
  <div class="log"></div>
395
  </div><!-- .postbox -->
@@ -405,7 +405,7 @@ class SEOPRESS_Admin_Setup_Wizard {
405
  <li><?php _e('Twitter tags (title, description and image thumbnail)','wp-seopress'); ?></li>
406
  </ul>
407
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any WP Meta SEO data.', 'wp-seopress' ); ?></p>
408
- <button id="seopress-wp-meta-seo-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
409
  <span class="spinner"></span>
410
  <div class="log"></div>
411
  </div><!-- .postbox -->
@@ -806,6 +806,7 @@ class SEOPRESS_Admin_Setup_Wizard {
806
  ?>
807
  <h1><?php esc_html_e( "Your site is now ready for search engines!", 'wp-seopress' ); ?></h1>
808
 
 
809
  <?php if (get_option( 'seopress_pro_license_status' ) !='valid' && is_plugin_active('wp-seopress-pro/seopress-pro.php') && !is_multisite()) { ?>
810
  <div class="seopress-message seopress-newsletter">
811
  <h3 class="seopress-setup-actions step">
@@ -853,39 +854,7 @@ class SEOPRESS_Admin_Setup_Wizard {
853
  </p>
854
  </div>
855
  </li>
856
- <li class="seopress-wizard-additional-steps">
857
- <div class="seopress-wizard-next-step-description">
858
- <p class="next-step-heading"><?php esc_html_e( 'Follow us:', 'wp-seopress' ); ?></p>
859
- </div>
860
- <div class="seopress-wizard-next-step-action step">
861
- <ul class="recommended-step">
862
- <li class="recommended-item">
863
- <a href="https://www.facebook.com/seopresspro/" target="_blank">
864
- <span class="dashicons dashicons-facebook"></span>
865
- <?php _e('Like our Facebook page','wp-seopress'); ?>
866
- </a>
867
- </li>
868
- <li class="recommended-item">
869
- <a href="https://twitter.com/wp_seopress" target="_blank">
870
- <span class="dashicons dashicons-twitter"></span>
871
- <?php _e('Follow us on Twitter','wp-seopress'); ?>
872
- </a>
873
- </li>
874
- <li class="recommended-item">
875
- <a href="https://www.youtube.com/seopress" target="_blank">
876
- <span class="dashicons dashicons-video-alt3"></span>
877
- <?php _e('Watch our guided tour videos to learn more about SEOPress','wp-seopress'); ?>
878
- </a>
879
- </li>
880
- <li class="recommended-item">
881
- <a href="https://www.instagram.com/wp_seopress/" target="_blank">
882
- <span class="dashicons dashicons-instagram"></span>
883
- <?php _e('The off side of SEOPress','wp-seopress'); ?>
884
- </a>
885
- </li>
886
- </ul>
887
- </div>
888
- </li>
889
  <li class="seopress-wizard-additional-steps">
890
  <div class="seopress-wizard-next-step-description">
891
  <p class="next-step-heading"><?php esc_html_e( 'You can also:', 'wp-seopress' ); ?></p>
@@ -909,4 +878,4 @@ class SEOPRESS_Admin_Setup_Wizard {
909
  }
910
  }
911
 
912
- new SEOPRESS_Admin_Setup_Wizard();
299
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
300
  </ul>
301
  <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will delete / update all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Yoast data.', 'wp-seopress' ); ?></p>
302
+ <button id="seopress-yoast-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
303
  <span class="spinner"></span>
304
  <div class="log"></div>
305
  </div><!-- .postbox -->
316
  <li><?php _e('Meta Robots (noindex, nofollow)','wp-seopress'); ?></li>
317
  </ul>
318
  <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update/delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any AIO data.', 'wp-seopress' ); ?></p>
319
+ <button id="seopress-aio-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
320
  <span class="spinner"></span>
321
  <div class="log"></div>
322
  </div><!-- .postbox -->
335
  <li><?php _e('Redirect URL','wp-seopress'); ?></li>
336
  </ul>
337
  <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any SEO Framework data.', 'wp-seopress' ); ?></p>
338
+ <button id="seopress-seo-framework-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
339
  <span class="spinner"></span>
340
  <div class="log"></div>
341
  </div><!-- .postbox -->
354
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
355
  </ul>
356
  <p style="color:red"><span class="dashicons dashicons-warning"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Rank Math data.', 'wp-seopress' ); ?></p>
357
+ <button id="seopress-rk-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
358
  <span class="spinner"></span>
359
  <div class="log"></div>
360
  </div><!-- .postbox -->
372
  <li><?php _e('Canonical URL','wp-seopress'); ?></li>
373
  </ul>
374
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any Squirrly SEO data.', 'wp-seopress' ); ?></p>
375
+ <button id="seopress-squirrly-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
376
  <span class="spinner"></span>
377
  <div class="log"></div>
378
  </div><!-- .postbox -->
389
  <li><?php _e('Meta Robots (noindex or nofollow)','wp-seopress'); ?></li>
390
  </ul>
391
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any SEO Ultimate data.', 'wp-seopress' ); ?></p>
392
+ <button id="seopress-seo-ultimate-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
393
  <span class="spinner"></span>
394
  <div class="log"></div>
395
  </div><!-- .postbox -->
405
  <li><?php _e('Twitter tags (title, description and image thumbnail)','wp-seopress'); ?></li>
406
  </ul>
407
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any WP Meta SEO data.', 'wp-seopress' ); ?></p>
408
+ <button id="seopress-wp-meta-seo-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
409
  <span class="spinner"></span>
410
  <div class="log"></div>
411
  </div><!-- .postbox -->
806
  ?>
807
  <h1><?php esc_html_e( "Your site is now ready for search engines!", 'wp-seopress' ); ?></h1>
808
 
809
+ <!-- SEOPress PRO -->
810
  <?php if (get_option( 'seopress_pro_license_status' ) !='valid' && is_plugin_active('wp-seopress-pro/seopress-pro.php') && !is_multisite()) { ?>
811
  <div class="seopress-message seopress-newsletter">
812
  <h3 class="seopress-setup-actions step">
854
  </p>
855
  </div>
856
  </li>
857
+ <?php seopress_wizard_follow_us(); ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
858
  <li class="seopress-wizard-additional-steps">
859
  <div class="seopress-wizard-next-step-description">
860
  <p class="next-step-heading"><?php esc_html_e( 'You can also:', 'wp-seopress' ); ?></p>
878
  }
879
  }
880
 
881
+ new SEOPRESS_Admin_Setup_Wizard();
inc/admin/admin.php CHANGED
@@ -704,7 +704,7 @@ class seopress_options
704
  <p><input type="hidden" name="seopress_action" value="export_csv_metadata" /></p>
705
  <p>
706
  <?php wp_nonce_field( 'seopress_export_csv_metadata_nonce', 'seopress_export_csv_metadata_nonce' ); ?>
707
- <button id="seopress-metadata-export" class="button"><?php _e('Export','wp-seopress'); ?></button>
708
  <span class="spinner"></span>
709
  <div class="log"></div>
710
  </p>
@@ -778,7 +778,7 @@ class seopress_options
778
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
779
  </ul>
780
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will delete / update all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Yoast data.', 'wp-seopress' ); ?></p>
781
- <button id="seopress-yoast-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
782
  <span class="spinner"></span>
783
  <div class="log"></div>
784
  </div><!-- .inside -->
@@ -797,7 +797,7 @@ class seopress_options
797
  <li><?php _e('Meta Robots (noindex, nofollow)','wp-seopress'); ?></li>
798
  </ul>
799
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update/delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any AIO data.', 'wp-seopress' ); ?></p>
800
- <button id="seopress-aio-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
801
  <span class="spinner"></span>
802
  <div class="log"></div>
803
  </div><!-- .inside -->
@@ -818,7 +818,7 @@ class seopress_options
818
  <li><?php _e('Redirect URL','wp-seopress'); ?></li>
819
  </ul>
820
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any SEO Framework data.', 'wp-seopress' ); ?></p>
821
- <button id="seopress-seo-framework-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
822
  <span class="spinner"></span>
823
  <div class="log"></div>
824
  </div><!-- .inside -->
@@ -839,7 +839,7 @@ class seopress_options
839
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
840
  </ul>
841
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Rank Math data.', 'wp-seopress' ); ?></p>
842
- <button id="seopress-rk-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
843
  <span class="spinner"></span>
844
  <div class="log"></div>
845
  </div><!-- .inside -->
@@ -859,7 +859,7 @@ class seopress_options
859
  <li><?php _e('Canonical URL','wp-seopress'); ?></li>
860
  </ul>
861
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update/delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any Squirrly SEO data.', 'wp-seopress' ); ?></p>
862
- <button id="seopress-squirrly-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
863
  <span class="spinner"></span>
864
  <div class="log"></div>
865
  </div><!-- .inside -->
@@ -878,7 +878,7 @@ class seopress_options
878
  <li><?php _e('Meta Robots (noindex or nofollow)','wp-seopress'); ?></li>
879
  </ul>
880
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any SEO Ultimate data.', 'wp-seopress' ); ?></p>
881
- <button id="seopress-seo-ultimate-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
882
  <span class="spinner"></span>
883
  <div class="log"></div>
884
  </div><!-- .inside -->
@@ -896,7 +896,7 @@ class seopress_options
896
  <li><?php _e('Twitter tags (title, description and image thumbnail)','wp-seopress'); ?></li>
897
  </ul>
898
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any WP Meta SEO data.', 'wp-seopress' ); ?></p>
899
- <button id="seopress-wp-meta-seo-migrate" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
900
  <span class="spinner"></span>
901
  <div class="log"></div>
902
  </div><!-- .inside -->
@@ -2804,7 +2804,7 @@ class seopress_options
2804
  echo '&nbsp;';
2805
  echo '<a href="https://www.google.com/ping?sitemap='.get_option( 'home' ).'/sitemaps.xml/" target="_blank" class="button"><span class="dashicons dashicons-share-alt2"></span>'.__('Ping Google manually','wp-seopress').'</a>';
2806
  echo '&nbsp;';
2807
- echo '<button id="seopress-flush-permalinks" class="button"><span class="dashicons dashicons-admin-links"></span>'.__('Flush permalinks','wp-seopress').'</button>';
2808
  echo '<span class="spinner"></span>';
2809
  }
2810
 
@@ -4148,9 +4148,9 @@ class seopress_options
4148
  {
4149
  $options = get_option( 'seopress_social_option_name' );
4150
 
4151
- $options_set = isset($options['seopress_social_knowledge_img']) ? $options['seopress_social_knowledge_img'] : NULL;
4152
 
4153
- $check = isset($options['seopress_social_knowledge_img']);
4154
 
4155
  echo '<input id="seopress_social_knowledge_img_meta" type="text" value="'.$options_set.'" name="seopress_social_option_name[seopress_social_knowledge_img]" aria-label="'.__('Your photo/organization logo','wp-seopress').'" placeholder="'.esc_html__('Select your logo','wp-seopress').'" />
4156
 
@@ -4174,7 +4174,7 @@ class seopress_options
4174
  }
4175
  echo '<br>';
4176
  echo '<br>';
4177
- echo '<img style="width:200px;max-height:300px;" src="'.seopress_social_knowledge_img_option().'"/>';
4178
  }
4179
 
4180
  public function seopress_social_knowledge_phone_callback()
@@ -4385,7 +4385,7 @@ class seopress_options
4385
  {
4386
  $options = get_option( 'seopress_social_option_name' );
4387
 
4388
- $options_set = isset($options['seopress_social_facebook_img']) ? $options['seopress_social_facebook_img'] : NULL;
4389
 
4390
  $check = isset($options['seopress_social_facebook_img']);
4391
 
@@ -4497,7 +4497,7 @@ class seopress_options
4497
  {
4498
  $options = get_option( 'seopress_social_option_name' );
4499
 
4500
- $options_set = isset($options['seopress_social_twitter_card_img']) ? $options['seopress_social_twitter_card_img'] : NULL;
4501
 
4502
  $check = isset($options['seopress_social_twitter_card_img']);
4503
 
704
  <p><input type="hidden" name="seopress_action" value="export_csv_metadata" /></p>
705
  <p>
706
  <?php wp_nonce_field( 'seopress_export_csv_metadata_nonce', 'seopress_export_csv_metadata_nonce' ); ?>
707
+ <button id="seopress-metadata-export" type="button" class="button"><?php _e('Export','wp-seopress'); ?></button>
708
  <span class="spinner"></span>
709
  <div class="log"></div>
710
  </p>
778
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
779
  </ul>
780
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will delete / update all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Yoast data.', 'wp-seopress' ); ?></p>
781
+ <button id="seopress-yoast-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
782
  <span class="spinner"></span>
783
  <div class="log"></div>
784
  </div><!-- .inside -->
797
  <li><?php _e('Meta Robots (noindex, nofollow)','wp-seopress'); ?></li>
798
  </ul>
799
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update/delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any AIO data.', 'wp-seopress' ); ?></p>
800
+ <button id="seopress-aio-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
801
  <span class="spinner"></span>
802
  <div class="log"></div>
803
  </div><!-- .inside -->
818
  <li><?php _e('Redirect URL','wp-seopress'); ?></li>
819
  </ul>
820
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any SEO Framework data.', 'wp-seopress' ); ?></p>
821
+ <button id="seopress-seo-framework-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
822
  <span class="spinner"></span>
823
  <div class="log"></div>
824
  </div><!-- .inside -->
839
  <li><?php _e('Focus keywords','wp-seopress'); ?></li>
840
  </ul>
841
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts and terms metadata. Some dynamic variables will not be interpreted. We do NOT delete any Rank Math data.', 'wp-seopress' ); ?></p>
842
+ <button id="seopress-rk-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
843
  <span class="spinner"></span>
844
  <div class="log"></div>
845
  </div><!-- .inside -->
859
  <li><?php _e('Canonical URL','wp-seopress'); ?></li>
860
  </ul>
861
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update/delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any Squirrly SEO data.', 'wp-seopress' ); ?></p>
862
+ <button id="seopress-squirrly-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
863
  <span class="spinner"></span>
864
  <div class="log"></div>
865
  </div><!-- .inside -->
878
  <li><?php _e('Meta Robots (noindex or nofollow)','wp-seopress'); ?></li>
879
  </ul>
880
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any SEO Ultimate data.', 'wp-seopress' ); ?></p>
881
+ <button id="seopress-seo-ultimate-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
882
  <span class="spinner"></span>
883
  <div class="log"></div>
884
  </div><!-- .inside -->
896
  <li><?php _e('Twitter tags (title, description and image thumbnail)','wp-seopress'); ?></li>
897
  </ul>
898
  <p style="color:red"><span class="dashicons dashicons-info"></span> <?php _e( '<strong>WARNING:</strong> Migration will update / delete all SEOPress posts metadata. Some dynamic variables will not be interpreted. We do NOT delete any WP Meta SEO data.', 'wp-seopress' ); ?></p>
899
+ <button id="seopress-wp-meta-seo-migrate" type="button" class="button"><?php _e('Migrate now','wp-seopress'); ?></button>
900
  <span class="spinner"></span>
901
  <div class="log"></div>
902
  </div><!-- .inside -->
2804
  echo '&nbsp;';
2805
  echo '<a href="https://www.google.com/ping?sitemap='.get_option( 'home' ).'/sitemaps.xml/" target="_blank" class="button"><span class="dashicons dashicons-share-alt2"></span>'.__('Ping Google manually','wp-seopress').'</a>';
2806
  echo '&nbsp;';
2807
+ echo '<button type="button" id="seopress-flush-permalinks" class="button"><span class="dashicons dashicons-admin-links"></span>'.__('Flush permalinks','wp-seopress').'</button>';
2808
  echo '<span class="spinner"></span>';
2809
  }
2810
 
4148
  {
4149
  $options = get_option( 'seopress_social_option_name' );
4150
 
4151
+ $options_set = isset($options['seopress_social_knowledge_img']) ? esc_attr($options['seopress_social_knowledge_img']) : NULL;
4152
 
4153
+ $check = isset($options['seopress_social_knowledge_img']);
4154
 
4155
  echo '<input id="seopress_social_knowledge_img_meta" type="text" value="'.$options_set.'" name="seopress_social_option_name[seopress_social_knowledge_img]" aria-label="'.__('Your photo/organization logo','wp-seopress').'" placeholder="'.esc_html__('Select your logo','wp-seopress').'" />
4156
 
4174
  }
4175
  echo '<br>';
4176
  echo '<br>';
4177
+ echo '<img style="width:200px;max-height:300px;" src="'.esc_attr(seopress_social_knowledge_img_option()).'"/>';
4178
  }
4179
 
4180
  public function seopress_social_knowledge_phone_callback()
4385
  {
4386
  $options = get_option( 'seopress_social_option_name' );
4387
 
4388
+ $options_set = isset($options['seopress_social_facebook_img']) ? esc_attr($options['seopress_social_facebook_img']) : NULL;
4389
 
4390
  $check = isset($options['seopress_social_facebook_img']);
4391
 
4497
  {
4498
  $options = get_option( 'seopress_social_option_name' );
4499
 
4500
+ $options_set = isset($options['seopress_social_twitter_card_img']) ? esc_attr($options['seopress_social_twitter_card_img']) : NULL;
4501
 
4502
  $check = isset($options['seopress_social_twitter_card_img']);
4503
 
inc/admin/adminbar.php CHANGED
@@ -41,7 +41,7 @@ function seopress_admin_bar_links() {
41
  $wp_admin_bar->add_menu( array(
42
  'parent' => 'seopress_custom_top_level',
43
  'id' => 'seopress_custom_sub_menu_google_analytics',
44
- 'title' => __( 'Google Analytics', 'wp-seopress' ),
45
  'href' => admin_url( 'admin.php?page=seopress-google-analytics' ),
46
  ));
47
  $wp_admin_bar->add_menu( array(
@@ -49,14 +49,22 @@ function seopress_admin_bar_links() {
49
  'id' => 'seopress_custom_sub_menu_advanced',
50
  'title' => __( 'Advanced', 'wp-seopress' ),
51
  'href' => admin_url( 'admin.php?page=seopress-advanced' ),
52
- ));
 
 
 
 
 
 
 
 
 
53
  $wp_admin_bar->add_menu( array(
54
  'parent' => 'seopress_custom_top_level',
55
  'id' => 'seopress_custom_sub_menu_import_export',
56
  'title' => __( 'Tools', 'wp-seopress' ),
57
  'href' => admin_url( 'admin.php?page=seopress-import-export' ),
58
  ));
59
- include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
60
  if ( is_plugin_active( 'wp-seopress-pro/seopress-pro.php' ) ) {
61
  if(seopress_get_toggle_option('bot')=='1') {
62
  $wp_admin_bar->add_menu( array(
41
  $wp_admin_bar->add_menu( array(
42
  'parent' => 'seopress_custom_top_level',
43
  'id' => 'seopress_custom_sub_menu_google_analytics',
44
+ 'title' => __( 'Analytics', 'wp-seopress' ),
45
  'href' => admin_url( 'admin.php?page=seopress-google-analytics' ),
46
  ));
47
  $wp_admin_bar->add_menu( array(
49
  'id' => 'seopress_custom_sub_menu_advanced',
50
  'title' => __( 'Advanced', 'wp-seopress' ),
51
  'href' => admin_url( 'admin.php?page=seopress-advanced' ),
52
+ ));
53
+ include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
54
+ if ( is_plugin_active( 'wp-seopress-insights/seopress-insights.php' ) ) {
55
+ $wp_admin_bar->add_menu( array(
56
+ 'parent' => 'seopress_custom_top_level',
57
+ 'id' => 'seopress_custom_sub_menu_insights',
58
+ 'title' => __( 'Insights', 'wp-seopress' ),
59
+ 'href' => admin_url( 'admin.php?page=seopress-insights' ),
60
+ ));
61
+ }
62
  $wp_admin_bar->add_menu( array(
63
  'parent' => 'seopress_custom_top_level',
64
  'id' => 'seopress_custom_sub_menu_import_export',
65
  'title' => __( 'Tools', 'wp-seopress' ),
66
  'href' => admin_url( 'admin.php?page=seopress-import-export' ),
67
  ));
 
68
  if ( is_plugin_active( 'wp-seopress-pro/seopress-pro.php' ) ) {
69
  if(seopress_get_toggle_option('bot')=='1') {
70
  $wp_admin_bar->add_menu( array(
inc/admin/ajax.php CHANGED
@@ -5,417 +5,440 @@ defined( 'ABSPATH' ) or die( 'Please don&rsquo;t call the plugin directly. Thank
5
  //Get real preview + content analysis
6
  ///////////////////////////////////////////////////////////////////////////////////////////////////
7
  function seopress_do_real_preview() {
8
- check_ajax_referer( 'seopress_real_preview_nonce', $_GET['_ajax_nonce'], true );
9
-
10
- if ( current_user_can( 'edit_posts' ) && is_admin() ) {
11
-
12
- //Get cookies
13
- if (isset($_COOKIE)) {
14
- $cookies = array();
15
-
16
- foreach ( $_COOKIE as $name => $value ) {
17
- if ( 'PHPSESSID' !== $name ) {
18
- $cookies[] = new WP_Http_Cookie( ['name' => $name, 'value' => $value] );
19
- }
20
- }
21
- }
22
-
23
- //Get post id
24
- if ( isset( $_GET['post_id'] ) ) {
25
- $seopress_get_the_id = $_GET['post_id'];
26
- }
27
-
28
- if (get_post_meta($seopress_get_the_id,'_seopress_redirections_enabled',true) =='yes') {
29
- $data['title'] = __('A redirect is active for this URL. Turn it off to get the Google preview and content analysis.', 'wp-seopress');
30
- } else {
31
- //Get cookies
32
- if (isset($_COOKIE)) {
33
- $cookies = [];
34
-
35
- foreach ( $_COOKIE as $name => $value ) {
36
- if ( 'PHPSESSID' !== $name ) {
37
- $cookies[] = new WP_Http_Cookie( [ 'name' => $name, 'value' => $value ] );
38
- }
39
- }
40
- }
41
-
42
- //Get post type
43
- if ( isset( $_GET['post_type'] ) ) {
44
- $seopress_get_post_type = $_GET['post_type'];
45
- }
46
-
47
- //Origin
48
- if ( isset( $_GET['origin'] ) ) {
49
- $seopress_origin = $_GET['origin'];
50
- }
51
-
52
- //Tax name
53
- if ( isset( $_GET['tax_name'] ) ) {
54
- $seopress_tax_name = $_GET['tax_name'];
55
- }
56
-
57
- //Init
58
- $title = '';
59
- $meta_desc = '';
60
- $data = [];
61
-
62
- //Save Target KWs
63
- if(isset($_GET['seopress_analysis_target_kw'])) {
64
- delete_post_meta($seopress_get_the_id, '_seopress_analysis_target_kw');
65
- update_post_meta($seopress_get_the_id, '_seopress_analysis_target_kw', sanitize_text_field($_GET['seopress_analysis_target_kw']));
66
- }
67
-
68
- //DOM
69
- $dom = new DOMDocument();
70
- $internalErrors = libxml_use_internal_errors(true);
71
- $dom->preserveWhiteSpace = false;
72
-
73
- //Get source code
74
- $args = array(
75
- 'blocking' => true,
76
- 'timeout' => 30,
77
- 'sslverify' => false,
78
- );
79
-
80
- if (isset($cookies) && !empty($cookies)) {
81
- $args['cookies'] = $cookies;
82
- }
83
-
84
- $args = apply_filters('seopress_real_preview_remote', $args);
85
-
86
- $data['title'] = $cookies;
87
-
88
- if ($seopress_origin =='post') { //Default: post type
89
- $response = wp_remote_get(get_preview_post_link((int)$seopress_get_the_id,array('no_admin_bar' => 1)), $args);
90
- } else { //Term taxonomy
91
- $response = wp_remote_get(get_term_link((int)$seopress_get_the_id, $seopress_tax_name), $args);
92
- }
93
- //Check for error
94
- if ( is_wp_error( $response ) || wp_remote_retrieve_response_code($response) =='404' ) {
95
- $data['title'] = __('To get your Google snippet preview, publish your post!', 'wp-seopress');
96
- } else {
97
- $response = wp_remote_retrieve_body($response);
98
-
99
- if($dom->loadHTML('<?xml encoding="utf-8" ?>' .$response)) {
100
-
101
- $data = get_post_meta($seopress_get_the_id, '_seopress_analysis_data', true) ? get_post_meta($seopress_get_the_id, '_seopress_analysis_data', true) : $data = [];
102
-
103
- //Get post content (used for Words counter)
104
- $seopress_get_the_content = apply_filters('the_content', get_post_field('post_content', $seopress_get_the_id));
105
-
106
- //Themify compatibility
107
- if ( defined( 'THEMIFY_DIR' ) ) {
108
- $seopress_get_the_content = get_post_field('post_content', $seopress_get_the_id);
109
- }
110
-
111
- $seopress_get_the_content = apply_filters('seopress_content_analysis_content', $seopress_get_the_content, $seopress_get_the_id);
112
-
113
- //Get Target Keywords
114
- if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
115
- $data['target_kws'] = strtolower($_GET['seopress_analysis_target_kw']);
116
- $seopress_analysis_target_kw = array_filter(explode(',', strtolower(get_post_meta($seopress_get_the_id,'_seopress_analysis_target_kw',true))));
117
- }
118
- $xpath = new DOMXPath($dom);
119
-
120
- //Title
121
- $list = $dom->getElementsByTagName("title");
122
- if ($list->length > 0) {
123
- $title = $list->item(0)->textContent;
124
- $data['title'] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($title)));
125
- if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
126
- foreach ($seopress_analysis_target_kw as $kw) {
127
- if (preg_match_all('#\b('.$kw.')\b#iu', $data['title'], $m)) {
128
- $data['meta_title']['matches'][$kw][] = $m[0];
129
- }
130
- }
131
- }
132
- }
133
-
134
- //Meta desc
135
- $meta_description = $xpath->query('//meta[@name="description"]/@content');
136
-
137
- foreach ($meta_description as $key=>$mdesc) {
138
- $data['meta_desc'] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses(wp_strip_all_tags($mdesc->nodeValue))));
139
- }
140
-
141
- if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
142
- if (!empty($meta_description)) {
143
- foreach ($meta_description as $meta_desc) {
144
- foreach ($seopress_analysis_target_kw as $kw) {
145
- if (preg_match_all('#\b('.$kw.')\b#iu', $meta_desc->nodeValue, $m)) {
146
- $data['meta_description']['matches'][$kw][] = $m[0];
147
- }
148
- }
149
- }
150
- }
151
- }
152
-
153
- //OG:title
154
- $og_title = $xpath->query('//meta[@property="og:title"]/@content');
155
-
156
- if (!empty($og_title)) {
157
- $data['og_title']['count'] = count($og_title);
158
- foreach ($og_title as $key=>$mogtitle) {
159
- $data['og_title']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mogtitle->nodeValue)));
160
- }
161
- }
162
-
163
- //OG:description
164
- $og_desc = $xpath->query('//meta[@property="og:description"]/@content');
165
-
166
- if (!empty($og_desc)) {
167
- $data['og_desc']['count'] = count($og_desc);
168
- foreach ($og_desc as $key=>$mog_desc) {
169
- $data['og_desc']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_desc->nodeValue)));
170
- }
171
- }
172
-
173
- //OG:image
174
- $og_img = $xpath->query('//meta[@property="og:image"]/@content');
175
-
176
- if (!empty($og_img)) {
177
- $data['og_img']['count'] = count($og_img);
178
- foreach ($og_img as $key=>$mog_img) {
179
- $data['og_img']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_img->nodeValue)));
180
- }
181
- }
182
-
183
- //OG:url
184
- $og_url = $xpath->query('//meta[@property="og:url"]/@content');
185
-
186
- if (!empty($og_url)) {
187
- $data['og_url']['count'] = count($og_url);
188
- foreach ($og_url as $key=>$mog_url) {
189
- $url = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_url->nodeValue)));
190
- $data['og_url']['values'][] = $url;
191
- $url = wp_parse_url($url);
192
- $data['og_url']['host'] = $url['host'];
193
- }
194
- }
195
-
196
- //OG:site_name
197
- $og_site_name = $xpath->query('//meta[@property="og:site_name"]/@content');
198
-
199
- if (!empty($og_site_name)) {
200
- $data['og_site_name']['count'] = count($og_site_name);
201
- foreach ($og_site_name as $key=>$mog_site_name) {
202
- $data['og_site_name']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_site_name->nodeValue)));
203
- }
204
- }
205
-
206
- //Twitter:title
207
- $tw_title = $xpath->query('//meta[@name="twitter:title"]/@content');
208
-
209
- if (!empty($tw_title)) {
210
- $data['tw_title']['count'] = count($tw_title);
211
- foreach ($tw_title as $key=>$mtw_title) {
212
- $data['tw_title']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_title->nodeValue)));
213
- }
214
- }
215
-
216
- //Twitter:description
217
- $tw_desc = $xpath->query('//meta[@name="twitter:description"]/@content');
218
-
219
- if (!empty($tw_desc)) {
220
- $data['tw_desc']['count'] = count($tw_desc);
221
- foreach ($tw_desc as $key=>$mtw_desc) {
222
- $data['tw_desc']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_desc->nodeValue)));
223
- }
224
- }
225
-
226
- //Twitter:image
227
- $tw_img = $xpath->query('//meta[@name="twitter:image"]/@content');
228
-
229
- if (!empty($tw_img)) {
230
- $data['tw_img']['count'] = count($tw_img);
231
- foreach ($tw_img as $key=>$mtw_img) {
232
- $data['tw_img']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_img->nodeValue)));
233
- }
234
- }
235
-
236
- //Twitter:image:src
237
- $tw_img = $xpath->query('//meta[@name="twitter:image:src"]/@content');
238
-
239
- if (!empty($tw_img)) {
240
- $count = NULL;
241
- if (!empty($data['tw_img']['count'])) {
242
- $count = $data['tw_img']['count'];
243
- }
244
-
245
- $data['tw_img']['count'] = count($tw_img) + $count;
246
-
247
- foreach ($tw_img as $key=>$mtw_img) {
248
- $data['tw_img']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_img->nodeValue)));
249
- }
250
- }
251
-
252
- //Canonical
253
- $canonical = $xpath->query('//link[@rel="canonical"]/@href');
254
-
255
- foreach ($canonical as $key=>$mcanonical) {
256
- $data['canonical'] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mcanonical->nodeValue)));
257
- }
258
-
259
- if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
260
- //h1
261
- $h1 = $xpath->query("//h1");
262
- if (!empty($h1)) {
263
- $data['h1']['nomatches']['count'] = count($h1);
264
- foreach ($h1 as $heading1) {
265
- foreach ($seopress_analysis_target_kw as $kw) {
266
- if (preg_match_all('#\b('.$kw.')\b#iu', $heading1->nodeValue, $m)) {
267
- $data['h1']['matches'][$kw][] = $m[0];
268
- }
269
- }
270
- $data['h1']['values'][] = esc_attr($heading1->nodeValue);
271
- }
272
- }
273
-
274
- //h2
275
- $h2 = $xpath->query("//h2");
276
- if (!empty($h2)) {
277
- foreach ($h2 as $heading2) {
278
- foreach ($seopress_analysis_target_kw as $kw) {
279
- if (preg_match_all('#\b('.$kw.')\b#iu', $heading2->nodeValue, $m)) {
280
- $data['h2']['matches'][$kw][] = $m[0];
281
- }
282
- }
283
- }
284
- }
285
-
286
- //h3
287
- $h3 = $xpath->query("//h3");
288
- if (!empty($h3)) {
289
- foreach ($h3 as $heading3) {
290
- foreach ($seopress_analysis_target_kw as $kw) {
291
- if (preg_match_all('#\b('.$kw.')\b#iu', $heading3->nodeValue, $m)) {
292
- $data['h3']['matches'][$kw][] = $m[0];
293
- }
294
- }
295
- }
296
- }
297
-
298
- //Keywords density
299
- if (!is_plugin_active('oxygen/functions.php') && !function_exists('ct_template_output')) { //disable for Oxygen
300
- foreach ($seopress_analysis_target_kw as $kw) {
301
- if (preg_match_all('#\b('.$kw.')\b#iu', strip_tags(wp_filter_nohtml_kses($seopress_get_the_content)), $m)) {
302
- $data['kws_density']['matches'][$kw][] = $m[0];
303
- }
304
- }
305
- }
306
-
307
- //Keywords in permalink
308
- $post = get_post($seopress_get_the_id);
309
- $kw_slug = urldecode($post->post_name);
310
- $kw_slug = str_replace("-", " ", $kw_slug);
311
-
312
- if (isset($kw_slug)) {
313
- foreach ($seopress_analysis_target_kw as $kw) {
314
- if (preg_match_all('#\b('.remove_accents($kw).')\b#iu', strip_tags(wp_filter_nohtml_kses($kw_slug)), $m)) {
315
- $data['kws_permalink']['matches'][$kw][] = $m[0];
316
- }
317
- }
318
- }
319
- }
320
-
321
- //Images
322
- /*Standard images*/
323
- $imgs = $xpath->query("//img");
324
-
325
- if (!empty($imgs) && $imgs !=NULL) {
326
- //init
327
- $data_img = array();
328
- foreach ($imgs as $img) {
329
- if ($img->hasAttribute('src')) {
330
- if ($img->hasAttribute('width') || $img->hasAttribute('height')) {
331
- if ($img->getAttribute('width') > 1 || $img->getAttribute('height') > 1) {
332
- if ($img->getAttribute('alt') ==='' || !$img->hasAttribute('alt')) {//if alt is empty or doesn't exist
333
- $data_img[] .= $img->getAttribute('src');
334
- }
335
- }
336
- } elseif ($img->getAttribute('alt') ==='' || !$img->hasAttribute('alt')) {//if alt is empty or doesn't exist
337
- $img_src = download_url($img->getAttribute('src'));
338
- if (is_wp_error($img_src) === false) {
339
- if (filesize($img_src) > 100) {//Ignore files under 100 bytes
340
- $data_img[] .= $img->getAttribute('src');
341
- }
342
- @unlink($img_src);
343
- }
344
- }
345
- }
346
- $data['img']['images'] = $data_img;
347
- }
348
- }
349
-
350
- //Meta robots
351
- $meta_robots = $xpath->query('//meta[@name="robots"]/@content');
352
- if (!empty($meta_robots)) {
353
- foreach ($meta_robots as $key=>$value) {
354
- $data['meta_robots'][$key][] = esc_attr($value->nodeValue);
355
- }
356
- }
357
-
358
- //Meta google noimageindex / nositelinkssearchbox
359
- $meta_google = $xpath->query('//meta[@name="google"]/@content');
360
- if (!empty($meta_google)) {
361
- foreach ($meta_google as $key=>$mgnoimg) {
362
- $data['meta_google'][$key][] = esc_attr($mgnoimg->nodeValue);
363
- }
364
- }
365
-
366
- //nofollow links
367
- $nofollow_links = $xpath->query("//a[contains(@rel, 'nofollow')]");
368
- if (!empty($nofollow_links)) {
369
- foreach ($nofollow_links as $key=>$link) {
370
- $data['nofollow_links'][$key][$link->getAttribute('href')] = esc_attr($link->nodeValue);
371
- }
372
- }
373
- }
374
-
375
- //outbound links
376
- $site_url = wp_parse_url(get_home_url(), PHP_URL_HOST);
377
- $outbound_links = $xpath->query("//a[not(contains(@href, '".$site_url."'))]");
378
- if (!empty($outbound_links)) {
379
- foreach ($outbound_links as $key=>$link) {
380
- if (!empty(wp_parse_url($link->getAttribute('href'), PHP_URL_HOST))) {
381
- $data['outbound_links'][$key][$link->getAttribute('href')] = esc_attr($link->nodeValue);
382
- }
383
- }
384
- }
385
-
386
- //Words Counter
387
- if (!is_plugin_active('oxygen/functions.php') && !function_exists('ct_template_output')) { //disable for Oxygen
388
- if ($seopress_get_the_content !='') {
389
- $data['words_counter'] = preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", strip_tags(wp_filter_nohtml_kses($seopress_get_the_content)), $matches);
390
-
391
- $words_counter_unique = count(array_unique($matches[0]));
392
- $data['words_counter_unique'] = $words_counter_unique;
393
- }
394
- }
395
-
396
- //Get schemas
397
- $json_ld = $xpath->query( '//script[@type="application/ld+json"]' );
398
- if (!empty($json_ld)) {
399
- foreach($json_ld as $node) {
400
- $json = json_decode($node->nodeValue, true);
401
- if (isset($json['@type'])) {
402
- $data['json'][] = $json['@type'];
403
- }
404
- }
405
- }
406
- }
407
-
408
- libxml_use_internal_errors($internalErrors);
409
- }
410
-
411
- //Send data
412
- if(isset($data)){
413
- update_post_meta($seopress_get_the_id, '_seopress_analysis_data', $data);
414
- }
415
-
416
- //Return
417
- wp_send_json_success($data);
418
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
419
  }
420
  add_action('wp_ajax_seopress_do_real_preview', 'seopress_do_real_preview');
421
 
@@ -423,8 +446,8 @@ add_action('wp_ajax_seopress_do_real_preview', 'seopress_do_real_preview');
423
  //Flush permalinks
424
  ///////////////////////////////////////////////////////////////////////////////////////////////////
425
  function seopress_flush_permalinks() {
426
- check_ajax_referer( 'seopress_flush_permalinks_nonce', $_GET['_ajax_nonce'], true );
427
- flush_rewrite_rules();
428
  die();
429
  }
430
  add_action('wp_ajax_seopress_flush_permalinks', 'seopress_flush_permalinks');
@@ -433,7 +456,7 @@ add_action('wp_ajax_seopress_flush_permalinks', 'seopress_flush_permalinks');
433
  //Dashboard toggle features
434
  ///////////////////////////////////////////////////////////////////////////////////////////////////
435
  function seopress_toggle_features() {
436
- check_ajax_referer( 'seopress_toggle_features_nonce', $_POST['_ajax_nonce'], true );
437
 
438
  if ( isset( $_POST['feature']) && isset( $_POST['feature_value'] )) {
439
  $seopress_toggle_options = get_option('seopress_toggle');
@@ -448,14 +471,14 @@ add_action('wp_ajax_seopress_toggle_features', 'seopress_toggle_features');
448
  //Dashboard hide notices
449
  ///////////////////////////////////////////////////////////////////////////////////////////////////
450
  function seopress_hide_notices() {
451
- check_ajax_referer( 'seopress_hide_notices_nonce', $_POST['_ajax_nonce'], true );
452
-
453
- if ( isset( $_POST['notice']) && isset( $_POST['notice_value'] )) {
454
- $seopress_notices_options = get_option('seopress_notices');
455
- $seopress_notices_options[$_POST['notice']] = $_POST['notice_value'];
456
- update_option('seopress_notices', $seopress_notices_options, 'yes');
457
- }
458
- die();
459
  }
460
  add_action('wp_ajax_seopress_hide_notices', 'seopress_hide_notices');
461
 
@@ -463,150 +486,150 @@ add_action('wp_ajax_seopress_hide_notices', 'seopress_hide_notices');
463
  //Yoast migration
464
  ///////////////////////////////////////////////////////////////////////////////////////////////////
465
  function seopress_yoast_migration() {
466
- check_ajax_referer( 'seopress_yoast_migrate_nonce', $_POST['_ajax_nonce'], true );
467
-
468
- if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
469
-
470
- if ( isset( $_POST['offset']) && isset( $_POST['offset'] )) {
471
- $offset = absint($_POST['offset']);
472
- }
473
-
474
- global $wpdb;
475
-
476
- $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
477
-
478
- $increment = 200;
479
- global $post;
480
-
481
- if ($offset > $total_count_posts) {
482
- wp_reset_query();
483
-
484
- $yoast_query_terms = get_option('wpseo_taxonomy_meta');
485
-
486
- if ($yoast_query_terms) {
487
-
488
- foreach ($yoast_query_terms as $taxonomies => $taxonomie) {
489
- foreach ($taxonomie as $term_id => $term_value) {
490
- if ($term_value['wpseo_title'] !='') { //Import title tag
491
- update_term_meta($term_id, '_seopress_titles_title', $term_value['wpseo_title']);
492
- }
493
- if ($term_value['wpseo_desc'] !='') { //Import meta desc
494
- update_term_meta($term_id, '_seopress_titles_desc', $term_value['wpseo_desc']);
495
- }
496
- if ($term_value['wpseo_opengraph-title'] !='') { //Import Facebook Title
497
- update_term_meta($term_id, '_seopress_social_fb_title', $term_value['wpseo_opengraph-title']);
498
- }
499
- if ($term_value['wpseo_opengraph-description'] !='') { //Import Facebook Desc
500
- update_term_meta($term_id, '_seopress_social_fb_desc', $term_value['wpseo_opengraph-description']);
501
- }
502
- if ($term_value['wpseo_opengraph-image'] !='') { //Import Facebook Image
503
- update_term_meta($term_id, '_seopress_social_fb_img', $term_value['wpseo_opengraph-image']);
504
- }
505
- if ($term_value['wpseo_twitter-title'] !='') { //Import Twitter Title
506
- update_term_meta($term_id, '_seopress_social_twitter_title', $term_value['wpseo_twitter-title']);
507
- }
508
- if ($term_value['wpseo_twitter-description'] !='') { //Import Twitter Desc
509
- update_term_meta($term_id, '_seopress_social_twitter_desc', $term_value['wpseo_twitter-description']);
510
- }
511
- if ($term_value['wpseo_twitter-image'] !='') { //Import Twitter Image
512
- update_term_meta($term_id, '_seopress_social_twitter_img', $term_value['wpseo_twitter-image']);
513
- }
514
- if ($term_value['wpseo_noindex'] =='noindex') { //Import Robots NoIndex
515
- update_term_meta($term_id, '_seopress_robots_index', "yes");
516
- }
517
- if ($term_value['wpseo_canonical'] !='') { //Import Canonical URL
518
- update_term_meta($term_id, '_seopress_robots_canonical', $term_value['wpseo_canonical']);
519
- }
520
- }
521
- }
522
- }
523
- $offset = 'done';
524
- wp_reset_query();
525
- } else {
526
- $args = array(
527
- 'posts_per_page' => $increment,
528
- 'post_type' => 'any',
529
- 'post_status' => 'any',
530
- 'offset' => $offset,
531
- );
532
-
533
- $yoast_query = get_posts( $args );
534
-
535
- if ($yoast_query) {
536
- foreach ($yoast_query as $post) {
537
- if (get_post_meta($post->ID, '_yoast_wpseo_title', true) !='') { //Import title tag
538
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_yoast_wpseo_title', true));
539
- }
540
- if (get_post_meta($post->ID, '_yoast_wpseo_metadesc', true) !='') { //Import meta desc
541
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_yoast_wpseo_metadesc', true));
542
- }
543
- if (get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true) !='') { //Import Facebook Title
544
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true));
545
- }
546
- if (get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true) !='') { //Import Facebook Desc
547
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true));
548
- }
549
- if (get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true) !='') { //Import Facebook Image
550
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true));
551
- }
552
- if (get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true) !='') { //Import Twitter Title
553
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true));
554
- }
555
- if (get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true) !='') { //Import Twitter Desc
556
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true));
557
- }
558
- if (get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true) !='') { //Import Twitter Image
559
- update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true));
560
- }
561
- if (get_post_meta($post->ID, '_yoast_wpseo_meta-robots-noindex', true) =='1') { //Import Robots NoIndex
562
- update_post_meta($post->ID, '_seopress_robots_index', "yes");
563
- }
564
- if (get_post_meta($post->ID, '_yoast_wpseo_meta-robots-nofollow', true) =='1') { //Import Robots NoFollow
565
- update_post_meta($post->ID, '_seopress_robots_follow', "yes");
566
- }
567
- if (get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true) !='') { //Import Robots NoOdp, NoImageIndex, NoArchive, NoSnippet
568
- $yoast_wpseo_meta_robots_adv = get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true);
569
-
570
- if (strpos($yoast_wpseo_meta_robots_adv, 'noodp') !== false) {
571
- update_post_meta($post->ID, '_seopress_robots_odp', "yes");
572
- }
573
- if (strpos($yoast_wpseo_meta_robots_adv, 'noimageindex') !== false) {
574
- update_post_meta($post->ID, '_seopress_robots_imageindex', "yes");
575
- }
576
- if (strpos($yoast_wpseo_meta_robots_adv, 'noarchive') !== false) {
577
- update_post_meta($post->ID, '_seopress_robots_archive', "yes");
578
- }
579
- if (strpos($yoast_wpseo_meta_robots_adv, 'nosnippet') !== false) {
580
- update_post_meta($post->ID, '_seopress_robots_snippet', "yes");
581
- }
582
- }
583
- if (get_post_meta($post->ID, '_yoast_wpseo_canonical', true) !='') { //Import Canonical URL
584
- update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_yoast_wpseo_canonical', true));
585
- }
586
- if (get_post_meta($post->ID, '_yoast_wpseo_focuskw', true) !='' || get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', true) !='') { //Import Focus Keywords
587
- $y_fkws_clean = array(); //reset array
588
-
589
- $y_fkws = get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', false);
590
-
591
- foreach ($y_fkws as $value) {
592
- foreach (json_decode($value) as $key => $value) {
593
- $y_fkws_clean[] .= $value->keyword;
594
- }
595
- }
596
-
597
- $y_fkws_clean[] .= get_post_meta($post->ID, '_yoast_wpseo_focuskw', true);
598
-
599
- update_post_meta($post->ID, '_seopress_analysis_target_kw', implode(',',$y_fkws_clean));
600
- }
601
- }
602
- }
603
- $offset += $increment;
604
- }
605
- $data = array();
606
- $data['offset'] = $offset;
607
- wp_send_json_success($data);
608
- die();
609
- }
610
  }
611
  add_action('wp_ajax_seopress_yoast_migration', 'seopress_yoast_migration');
612
 
@@ -614,134 +637,134 @@ add_action('wp_ajax_seopress_yoast_migration', 'seopress_yoast_migration');
614
  //AIO migration
615
  ///////////////////////////////////////////////////////////////////////////////////////////////////
616
  function seopress_aio_migration() {
617
- check_ajax_referer( 'seopress_aio_migrate_nonce', $_POST['_ajax_nonce'], true );
618
-
619
- if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
620
-
621
- if ( isset( $_POST['offset2']) && isset( $_POST['offset2'] )) {
622
- $offset2 = absint($_POST['offset2']);
623
- }
624
-
625
- global $wpdb;
626
- $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
627
-
628
- $increment = 200;
629
- global $post;
630
-
631
- if ($offset2 > $total_count_posts) {
632
- wp_reset_query();
633
-
634
- $args = array(
635
- //'number' => $increment,
636
- 'hide_empty' => false,
637
- //'offset' => $offset2,
638
- 'fields' => 'ids',
639
- );
640
- $aio_query_terms = get_terms($args);
641
-
642
- if ($aio_query_terms) {
643
- foreach ($aio_query_terms as $term_id) {
644
- if (get_term_meta($term_id, '_aioseop_title', true) !='') { //Import title tag
645
- update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, '_aioseop_title', true));
646
- }
647
- if (get_term_meta($term_id, '_aioseop_description', true) !='') { //Import meta desc
648
- update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, '_aioseop_description', true));
649
- }
650
- if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Title
651
- $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
652
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
653
- update_term_meta($term_id, '_seopress_social_fb_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
654
- update_term_meta($term_id, '_seopress_social_twitter_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
655
- }
656
- }
657
- if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Title
658
- $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
659
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_desc'])) {
660
- update_term_meta($term_id, '_seopress_social_fb_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
661
- update_term_meta($term_id, '_seopress_social_twitter_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
662
- }
663
- }
664
- if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Facebook Image
665
- $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
666
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
667
- update_term_meta($term_id, '_seopress_social_fb_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg']);
668
- }
669
- }
670
- if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Twitter Image
671
- $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
672
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
673
- update_term_meta($term_id, '_seopress_social_twitter_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter']);
674
- }
675
- }
676
- if (get_term_meta($term_id, '_aioseop_noindex', true) =='on') { //Import Robots NoIndex
677
- update_term_meta($term_id, '_seopress_robots_index', "yes");
678
- }
679
- if (get_term_meta($term_id, '_aioseop_nofollow', true) =='on') { //Import Robots NoIndex
680
- update_term_meta($term_id, '_seopress_robots_follow', "yes");
681
- }
682
- }
683
- }
684
- $offset2 = 'done';
685
- wp_reset_query();
686
- } else {
687
- $args = array(
688
- 'posts_per_page' => $increment,
689
- 'post_type' => 'any',
690
- 'post_status' => 'any',
691
- 'offset' => $offset2,
692
- );
693
-
694
- $aio_query = get_posts( $args );
695
-
696
- if ($aio_query) {
697
- foreach ($aio_query as $post) {
698
- if (get_post_meta($post->ID, '_aioseop_title', true) !='') { //Import title tag
699
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_aioseop_title', true));
700
- }
701
- if (get_post_meta($post->ID, '_aioseop_description', true) !='') { //Import meta desc
702
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_aioseop_description', true));
703
- }
704
- if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Title
705
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
706
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
707
- update_post_meta($post->ID, '_seopress_social_fb_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
708
- update_post_meta($post->ID, '_seopress_social_twitter_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
709
- }
710
- }
711
- if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Desc
712
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
713
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_desc'])) {
714
- update_post_meta($post->ID, '_seopress_social_fb_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
715
- update_post_meta($post->ID, '_seopress_social_twitter_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
716
- }
717
- }
718
- if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Facebook Image
719
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
720
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
721
- update_post_meta($post->ID, '_seopress_social_fb_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg']);
722
- }
723
- }
724
- if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Twitter Image
725
- $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
726
- if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter'])) {
727
- update_post_meta($post->ID, '_seopress_social_twitter_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter']);
728
- }
729
- }
730
- if (get_post_meta($post->ID, '_aioseop_noindex', true) =='on') { //Import Robots NoIndex
731
- update_post_meta($post->ID, '_seopress_robots_index', "yes");
732
- }
733
- if (get_post_meta($post->ID, '_aioseop_nofollow', true) =='on') { //Import Robots NoFollow
734
- update_post_meta($post->ID, '_seopress_robots_follow', "yes");
735
- }
736
- }
737
- }
738
- $offset2 += $increment;
739
- }
740
- $data = array();
741
- $data['offset2'] = $offset2;
742
- wp_send_json_success($data);
743
- die();
744
- }
745
  }
746
  add_action('wp_ajax_seopress_aio_migration', 'seopress_aio_migration');
747
 
@@ -749,118 +772,118 @@ add_action('wp_ajax_seopress_aio_migration', 'seopress_aio_migration');
749
  //SEO Framework migration
750
  ///////////////////////////////////////////////////////////////////////////////////////////////////
751
  function seopress_seo_framework_migration() {
752
- check_ajax_referer( 'seopress_seo_framework_migrate_nonce', $_POST['_ajax_nonce'], true );
753
-
754
- if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
755
-
756
- if ( isset( $_POST['offset3']) && isset( $_POST['offset3'] )) {
757
- $offset3 = absint($_POST['offset3']);
758
- }
759
-
760
- global $wpdb;
761
- $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
762
-
763
- $increment = 200;
764
- global $post;
765
-
766
- if ($offset3 > $total_count_posts) {
767
- wp_reset_query();
768
-
769
- $args = array(
770
- //'number' => $increment,
771
- 'hide_empty' => false,
772
- //'offset' => $offset3,
773
- 'fields' => 'ids',
774
- );
775
- $seo_framework_query_terms = get_terms($args);
776
-
777
- if ($seo_framework_query_terms) {
778
- foreach ($seo_framework_query_terms as $term_id) {
779
- if (get_term_meta($term_id, 'autodescription-term-settings', true) !='') {
780
- $term_settings = get_term_meta($term_id, 'autodescription-term-settings', true);
781
-
782
- if (!empty($term_settings['doctitle'])) { //Import title tag
783
- update_term_meta($term_id, '_seopress_titles_title', $term_settings['doctitle']);
784
- }
785
- if (!empty($term_settings['description'])) { //Import meta desc
786
- update_term_meta($term_id, '_seopress_titles_desc', $term_settings['description']);
787
- }
788
- if (!empty($term_settings['noindex'])) { //Import Robots NoIndex
789
- update_term_meta($term_id, '_seopress_robots_index', "yes");
790
- }
791
- if (!empty($term_settings['nofollow'])) { //Import Robots NoFollow
792
- update_term_meta($term_id, '_seopress_robots_follow', "yes");
793
- }
794
- if (!empty($term_settings['noarchive'])) { //Import Robots NoArchive
795
- update_term_meta($term_id, '_seopress_robots_archive', "yes");
796
- }
797
- }
798
- }
799
- }
800
- $offset3 = 'done';
801
- wp_reset_query();
802
- } else {
803
- $args = array(
804
- 'posts_per_page' => $increment,
805
- 'post_type' => 'any',
806
- 'post_status' => 'any',
807
- 'offset' => $offset3,
808
- );
809
-
810
- $seo_framework_query = get_posts( $args );
811
-
812
- if ($seo_framework_query) {
813
- foreach ($seo_framework_query as $post) {
814
- if (get_post_meta($post->ID, '_genesis_title', true) !='') { //Import title tag
815
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_genesis_title', true));
816
- }
817
- if (get_post_meta($post->ID, '_genesis_description', true) !='') { //Import meta desc
818
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_genesis_description', true));
819
- }
820
- if (get_post_meta($post->ID, '_open_graph_title', true) !='') { //Import Facebook Title
821
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_open_graph_title', true));
822
- }
823
- if (get_post_meta($post->ID, '_open_graph_description', true) !='') { //Import Facebook Desc
824
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_open_graph_description', true));
825
- }
826
- if (get_post_meta($post->ID, '_social_image_url', true) !='') { //Import Facebook Image
827
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_social_image_url', true));
828
- }
829
- if (get_post_meta($post->ID, '_twitter_title', true) !='') { //Import Twitter Title
830
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_twitter_title', true));
831
- }
832
- if (get_post_meta($post->ID, '_twitter_description', true) !='') { //Import Twitter Desc
833
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_twitter_description', true));
834
- }
835
- if (get_post_meta($post->ID, '_social_image_url', true) !='') { //Import Twitter Image
836
- update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_social_image_url', true));
837
- }
838
- if (get_post_meta($post->ID, '_genesis_noindex', true) =='1') { //Import Robots NoIndex
839
- update_post_meta($post->ID, '_seopress_robots_index', "yes");
840
- }
841
- if (get_post_meta($post->ID, '_genesis_nofollow', true) =='1') { //Import Robots NoFollow
842
- update_post_meta($post->ID, '_seopress_robots_follow', "yes");
843
- }
844
- if (get_post_meta($post->ID, '_genesis_noarchive', true) =='1') { //Import Robots NoArchive
845
- update_post_meta($post->ID, '_seopress_robots_archive', "yes");
846
- }
847
- if (get_post_meta($post->ID, '_genesis_canonical_uri', true) !='') { //Import Canonical URL
848
- update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_genesis_canonical_uri', true));
849
- }
850
- if (get_post_meta($post->ID, 'redirect', true) !='') { //Import Redirect URL
851
- update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes');
852
- update_post_meta($post->ID, '_seopress_redirections_type', '301');
853
- update_post_meta($post->ID, '_seopress_redirections_value', get_post_meta($post->ID, 'redirect', true));
854
- }
855
- }
856
- }
857
- $offset3 += $increment;
858
- }
859
- $data = array();
860
- $data['offset3'] = $offset3;
861
- wp_send_json_success($data);
862
- die();
863
- }
864
  }
865
  add_action('wp_ajax_seopress_seo_framework_migration', 'seopress_seo_framework_migration');
866
 
@@ -868,162 +891,162 @@ add_action('wp_ajax_seopress_seo_framework_migration', 'seopress_seo_framework_m
868
  //RK migration
869
  ///////////////////////////////////////////////////////////////////////////////////////////////////
870
  function seopress_rk_migration() {
871
- check_ajax_referer( 'seopress_rk_migrate_nonce', $_POST['_ajax_nonce'], true );
872
-
873
- if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
874
-
875
- if ( isset( $_POST['offset4']) && isset( $_POST['offset4'] )) {
876
- $offset4 = absint($_POST['offset4']);
877
- }
878
-
879
- global $wpdb;
880
- $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
881
-
882
- $increment = 200;
883
- global $post;
884
-
885
- if ($offset4 > $total_count_posts) {
886
- wp_reset_query();
887
-
888
- $args = array(
889
- 'hide_empty' => false,
890
- 'fields' => 'ids',
891
- );
892
- $rk_query_terms = get_terms($args);
893
-
894
- if ($rk_query_terms) {
895
- foreach ($rk_query_terms as $term_id) {
896
- if (get_term_meta($term_id, 'rank_math_title', true) !='') { //Import title tag
897
- update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, 'rank_math_title', true));
898
- }
899
- if (get_term_meta($term_id, 'rank_math_description', true) !='') { //Import title desc
900
- update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, 'rank_math_description', true));
901
- }
902
- if (get_term_meta($term_id, 'rank_math_facebook_title', true) !='') { //Import Facebook Title
903
- update_term_meta($term_id, '_seopress_social_fb_title', get_term_meta($term_id, 'rank_math_facebook_title', true));
904
- }
905
- if (get_term_meta($term_id, 'rank_math_facebook_description', true) !='') { //Import Facebook Desc
906
- update_term_meta($term_id, '_seopress_social_fb_desc', get_term_meta($term_id, 'rank_math_facebook_description', true));
907
- }
908
- if (get_term_meta($term_id, 'rank_math_facebook_image', true) !='') { //Import Facebook Image
909
- update_term_meta($term_id, '_seopress_social_fb_img', get_term_meta($term_id, 'rank_math_facebook_image', true));
910
- }
911
- if (get_term_meta($term_id, 'rank_math_twitter_title', true) !='') { //Import Twitter Title
912
- update_term_meta($term_id, '_seopress_social_twitter_title', get_term_meta($term_id, 'rank_math_twitter_title', true));
913
- }
914
- if (get_term_meta($term_id, 'rank_math_twitter_description', true) !='') { //Import Twitter Desc
915
- update_term_meta($term_id, '_seopress_social_twitter_desc', get_term_meta($term_id, 'rank_math_twitter_description', true));
916
- }
917
- if (get_term_meta($term_id, 'rank_math_twitter_image', true) !='') { //Import Twitter Image
918
- update_term_meta($term_id, '_seopress_social_twitter_img', get_term_meta($term_id, 'rank_math_twitter_image', true));
919
- }
920
- if (get_term_meta($term_id, 'rank_math_robots', true) !='') { //Import Robots NoIndex, NoFollow, NoOdp, NoImageIndex, NoArchive, NoSnippet
921
- $rank_math_robots = get_term_meta($term_id, 'rank_math_robots', true);
922
-
923
- if (in_array('noindex', $rank_math_robots)) {
924
- update_term_meta($term_id, '_seopress_robots_index', "yes");
925
- }
926
- if (in_array('nofollow', $rank_math_robots)) {
927
- update_term_meta($term_id, '_seopress_robots_follow', "yes");
928
- }
929
- if (in_array('noodp', $rank_math_robots)) {
930
- update_term_meta($term_id, '_seopress_robots_odp', "yes");
931
- }
932
- if (in_array('noimageindex', $rank_math_robots)) {
933
- update_term_meta($term_id, '_seopress_robots_imageindex', "yes");
934
- }
935
- if (in_array('noarchive', $rank_math_robots)) {
936
- update_term_meta($term_id, '_seopress_robots_archive', "yes");
937
- }
938
- if (in_array('nosnippet', $rank_math_robots)) {
939
- update_term_meta($term_id, '_seopress_robots_snippet', "yes");
940
- }
941
- }
942
- if (get_term_meta($term_id, 'rank_math_canonical_url', true) !='') { //Import Canonical URL
943
- update_term_meta($term_id, '_seopress_robots_canonical', get_term_meta($term_id, 'rank_math_canonical_url', true));
944
- }
945
- if (get_term_meta($term_id, 'rank_math_focus_keyword', true) !='') { //Import Focus Keywords
946
- update_term_meta($term_id, '_seopress_analysis_target_kw', get_term_meta($term_id, 'rank_math_focus_keyword', true));
947
- }
948
-
949
-
950
- }
951
- }
952
- $offset4 = 'done';
953
- wp_reset_query();
954
- } else {
955
- $args = array(
956
- 'posts_per_page' => $increment,
957
- 'post_type' => 'any',
958
- 'post_status' => 'any',
959
- 'offset' => $offset4,
960
- );
961
-
962
- $rk_query = get_posts( $args );
963
-
964
- if ($rk_query) {
965
- foreach ($rk_query as $post) {
966
- if (get_post_meta($post->ID, 'rank_math_title', true) !='') { //Import title tag
967
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, 'rank_math_title', true));
968
- }
969
- if (get_post_meta($post->ID, 'rank_math_description', true) !='') { //Import meta desc
970
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, 'rank_math_description', true));
971
- }
972
- if (get_post_meta($post->ID, 'rank_math_facebook_title', true) !='') { //Import Facebook Title
973
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, 'rank_math_facebook_title', true));
974
- }
975
- if (get_post_meta($post->ID, 'rank_math_facebook_description', true) !='') { //Import Facebook Desc
976
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, 'rank_math_facebook_description', true));
977
- }
978
- if (get_post_meta($post->ID, 'rank_math_facebook_image', true) !='') { //Import Facebook Image
979
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, 'rank_math_facebook_image', true));
980
- }
981
- if (get_post_meta($post->ID, 'rank_math_twitter_title', true) !='') { //Import Twitter Title
982
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, 'rank_math_twitter_title', true));
983
- }
984
- if (get_post_meta($post->ID, 'rank_math_twitter_description', true) !='') { //Import Twitter Desc
985
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, 'rank_math_twitter_description', true));
986
- }
987
- if (get_post_meta($post->ID, 'rank_math_twitter_image', true) !='') { //Import Twitter Image
988
- update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, 'rank_math_twitter_image', true));
989
- }
990
- if (get_post_meta($post->ID, 'rank_math_robots', true) !='') { //Import Robots NoIndex, NoFollow, NoOdp, NoImageIndex, NoArchive, NoSnippet
991
- $rank_math_robots = get_post_meta($post->ID, 'rank_math_robots', true);
992
-
993
- if (in_array('noindex', $rank_math_robots)) {
994
- update_post_meta($post->ID, '_seopress_robots_index', "yes");
995
- }
996
- if (in_array('nofollow', $rank_math_robots)) {
997
- update_post_meta($post->ID, '_seopress_robots_follow', "yes");
998
- }
999
- if (in_array('noodp', $rank_math_robots)) {
1000
- update_post_meta($post->ID, '_seopress_robots_odp', "yes");
1001
- }
1002
- if (in_array('noimageindex', $rank_math_robots)) {
1003
- update_post_meta($post->ID, '_seopress_robots_imageindex', "yes");
1004
- }
1005
- if (in_array('noarchive', $rank_math_robots)) {
1006
- update_post_meta($post->ID, '_seopress_robots_archive', "yes");
1007
- }
1008
- if (in_array('nosnippet', $rank_math_robots)) {
1009
- update_post_meta($post->ID, '_seopress_robots_snippet', "yes");
1010
- }
1011
- }
1012
- if (get_post_meta($post->ID, 'rank_math_canonical_url', true) !='') { //Import Canonical URL
1013
- update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, 'rank_math_canonical_url', true));
1014
- }
1015
- if (get_post_meta($post->ID, 'rank_math_focus_keyword', true) !='') { //Import Focus Keywords
1016
- update_post_meta($post->ID, '_seopress_analysis_target_kw', get_post_meta($post->ID, 'rank_math_focus_keyword', true));
1017
- }
1018
- }
1019
- }
1020
- $offset4 += $increment;
1021
- }
1022
- $data = array();
1023
- $data['offset4'] = $offset4;
1024
- wp_send_json_success($data);
1025
- die();
1026
- }
1027
  }
1028
  add_action('wp_ajax_seopress_rk_migration', 'seopress_rk_migration');
1029
 
@@ -1031,69 +1054,69 @@ add_action('wp_ajax_seopress_rk_migration', 'seopress_rk_migration');
1031
  //Squirrly migration
1032
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1033
  function seopress_squirrly_migration() {
1034
- check_ajax_referer( 'seopress_squirrly_migrate_nonce', $_POST['_ajax_nonce'], true );
1035
-
1036
- if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
1037
-
1038
- if ( isset( $_POST['offset5']) && isset( $_POST['offset5'] )) {
1039
- $offset5 = absint($_POST['offset5']);
1040
- }
1041
-
1042
- global $wpdb;
1043
- $table_name = $wpdb->prefix . 'qss';
1044
- $blog_id = get_current_blog_id();
1045
-
1046
- $count_query = $wpdb->get_results( "SELECT * FROM $table_name WHERE blog_id = $blog_id", ARRAY_A );
1047
-
1048
- if (!empty($count_query)) {
1049
- foreach($count_query as $value) {
1050
- $post_id = url_to_postid($value['URL']);
1051
-
1052
- if ($post_id !=0 && !empty($value['seo'])) {
1053
- $seo = maybe_unserialize($value['seo']);
1054
-
1055
- if ($seo['title'] !='') { //Import title tag
1056
- update_post_meta($post_id, '_seopress_titles_title', $seo['title']);
1057
- }
1058
- if ($seo['description'] !='') { //Import description tag
1059
- update_post_meta($post_id, '_seopress_titles_desc', $seo['description']);
1060
- }
1061
- if ($seo['og_title'] !='') { //Import Facebook Title
1062
- update_post_meta($post_id, '_seopress_social_fb_title', $seo['og_title']);
1063
- }
1064
- if ($seo['og_description'] !='') { //Import Facebook Desc
1065
- update_post_meta($post_id, '_seopress_social_fb_desc', $seo['og_description']);
1066
- }
1067
- if ($seo['og_media'] !='') { //Import Facebook Image
1068
- update_post_meta($post_id, '_seopress_social_fb_img', $seo['og_media']);
1069
- }
1070
- if ($seo['tw_title'] !='') { //Import Twitter Title
1071
- update_post_meta($post_id, '_seopress_social_twitter_title', $seo['tw_title']);
1072
- }
1073
- if ($seo['tw_description'] !='') { //Import Twitter Desc
1074
- update_post_meta($post_id, '_seopress_social_twitter_desc', $seo['tw_description']);
1075
- }
1076
- if ($seo['tw_media'] !='') { //Import Twitter Image
1077
- update_post_meta($post_id, '_seopress_social_twitter_img', $seo['tw_media']);
1078
- }
1079
- if ($seo['noindex'] === 1) { //Import noindex
1080
- update_post_meta($post_id, '_seopress_robots_index', 'yes');
1081
- }
1082
- if ($seo['nofollow'] === 1) { //Import nofollow
1083
- update_post_meta($post_id, '_seopress_robots_follow', 'yes');
1084
- }
1085
- if ($seo['canonical'] !='') { //Import canonical
1086
- update_post_meta($post_id, '_seopress_robots_canonical', $seo['canonical']);
1087
- }
1088
- }
1089
- }
1090
- $offset5 = 'done';
1091
- }
1092
- $data = array();
1093
- $data['offset5'] = $offset5;
1094
- wp_send_json_success($data);
1095
- die();
1096
- }
1097
  }
1098
  add_action('wp_ajax_seopress_squirrly_migration', 'seopress_squirrly_migration');
1099
 
@@ -1104,66 +1127,66 @@ add_action('wp_ajax_seopress_squirrly_migration', 'seopress_squirrly_migration')
1104
  */
1105
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1106
  function seopress_seo_ultimate_migration() {
1107
- check_ajax_referer( 'seopress_seo_ultimate_migrate_nonce', $_POST['_ajax_nonce'], true );
1108
-
1109
- if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
1110
-
1111
- if ( isset( $_POST['offset7']) && isset( $_POST['offset7'] )) {
1112
- $offset7 = absint($_POST['offset7']);
1113
- }
1114
-
1115
- global $wpdb;
1116
-
1117
- $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
1118
-
1119
- $increment = 200;
1120
- global $post;
1121
-
1122
- if ($offset7 > $total_count_posts) {
1123
- $offset7 = 'done';
1124
- wp_reset_query();
1125
- } else {
1126
- $args = array(
1127
- 'posts_per_page' => $increment,
1128
- 'post_type' => 'any',
1129
- 'post_status' => 'any',
1130
- 'offset' => $offset7,
1131
- );
1132
-
1133
- $su_query = get_posts( $args );
1134
-
1135
- if ($su_query) {
1136
- foreach ($su_query as $post) {
1137
- if (get_post_meta($post->ID, '_su_title', true) !='') { //Import title tag
1138
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_su_title', true));
1139
- }
1140
- if (get_post_meta($post->ID, '_su_description', true) !='') { //Import meta desc
1141
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_su_description', true));
1142
- }
1143
- if (get_post_meta($post->ID, '_su_og_title', true) !='') { //Import Facebook Title
1144
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_su_og_title', true));
1145
- }
1146
- if (get_post_meta($post->ID, '_su_og_description', true) !='') { //Import Facebook Desc
1147
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_su_og_description', true));
1148
- }
1149
- if (get_post_meta($post->ID, '_su_og_image', true) !='') { //Import Facebook Image
1150
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_su_og_image', true));
1151
- }
1152
- if (get_post_meta($post->ID, '_su_meta_robots_noindex', true) =='1') { //Import Robots NoIndex
1153
- update_post_meta($post->ID, '_seopress_robots_index', "yes");
1154
- }
1155
- if (get_post_meta($post->ID, '_su_meta_robots_nofollow', true) =='1') { //Import Robots NoFollow
1156
- update_post_meta($post->ID, '_seopress_robots_follow', "yes");
1157
- }
1158
- }
1159
- }
1160
- $offset7 += $increment;
1161
- }
1162
- $data = array();
1163
- $data['offset7'] = $offset7;
1164
- wp_send_json_success($data);
1165
- die();
1166
- }
1167
  }
1168
  add_action('wp_ajax_seopress_seo_ultimate_migration', 'seopress_seo_ultimate_migration');
1169
 
@@ -1174,86 +1197,86 @@ add_action('wp_ajax_seopress_seo_ultimate_migration', 'seopress_seo_ultimate_mig
1174
  */
1175
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1176
  function seopress_wp_meta_seo_migration() {
1177
- check_ajax_referer( 'seopress_meta_seo_migrate_nonce', $_POST['_ajax_nonce'], true );
1178
-
1179
- if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
1180
-
1181
- if ( isset( $_POST['offset8']) && isset( $_POST['offset8'] )) {
1182
- $offset8 = absint($_POST['offset8']);
1183
- }
1184
-
1185
- global $wpdb;
1186
- $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
1187
-
1188
- $increment = 200;
1189
- global $post;
1190
-
1191
- if ($offset8 > $total_count_posts) {
1192
- wp_reset_query();
1193
-
1194
- $args = array(
1195
- 'hide_empty' => false,
1196
- 'fields' => 'ids',
1197
- );
1198
- $wp_meta_seo_query_terms = get_terms($args);
1199
-
1200
- if ($wp_meta_seo_query_terms) {
1201
- foreach ($wp_meta_seo_query_terms as $term_id) {
1202
- if (get_term_meta($term_id, 'wpms_category_metatitle', true) !='') { //Import title tag
1203
- update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, 'wpms_category_metatitle', true));
1204
- }
1205
- if (get_term_meta($term_id, 'wpms_category_metadesc', true) !='') { //Import title desc
1206
- update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, 'wpms_category_metadesc', true));
1207
- }
1208
- }
1209
- }
1210
- $offset8 = 'done';
1211
- wp_reset_query();
1212
- } else {
1213
- $args = array(
1214
- 'posts_per_page' => $increment,
1215
- 'post_type' => 'any',
1216
- 'post_status' => 'any',
1217
- 'offset' => $offset8,
1218
- );
1219
-
1220
- $wp_meta_seo_query = get_posts( $args );
1221
-
1222
- if ($wp_meta_seo_query) {
1223
- foreach ($wp_meta_seo_query as $post) {
1224
- if (get_post_meta($post->ID, '_metaseo_metatitle', true) !='') { //Import title tag
1225
- update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_metaseo_metatitle', true));
1226
- }
1227
- if (get_post_meta($post->ID, '_metaseo_metadesc', true) !='') { //Import meta desc
1228
- update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_metaseo_metadesc', true));
1229
- }
1230
- if (get_post_meta($post->ID, '_metaseo_metaopengraph-title', true) !='') { //Import Facebook Title
1231
- update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_metaseo_metaopengraph-title', true));
1232
- }
1233
- if (get_post_meta($post->ID, '_metaseo_metaopengraph-desc', true) !='') { //Import Facebook Desc
1234
- update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_metaseo_metaopengraph-desc', true));
1235
- }
1236
- if (get_post_meta($post->ID, '_metaseo_metaopengraph-image', true) !='') { //Import Facebook Image
1237
- update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_metaseo_metaopengraph-image', true));
1238
- }
1239
- if (get_post_meta($post->ID, '_metaseo_metatwitter-title', true) !='') { //Import Twitter Title
1240
- update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_metaseo_metatwitter-title', true));
1241
- }
1242
- if (get_post_meta($post->ID, '_metaseo_metatwitter-desc', true) !='') { //Import Twitter Desc
1243
- update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_metaseo_metatwitter-desc', true));
1244
- }
1245
- if (get_post_meta($post->ID, '_metaseo_metatwitter-image', true) !='') { //Import Twitter Image
1246
- update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_metaseo_metatwitter-image', true));
1247
- }
1248
- }
1249
- }
1250
- $offset8 += $increment;
1251
- }
1252
- $data = array();
1253
- $data['offset8'] = $offset8;
1254
- wp_send_json_success($data);
1255
- die();
1256
- }
1257
  }
1258
  add_action('wp_ajax_seopress_wp_meta_seo_migration', 'seopress_wp_meta_seo_migration');
1259
 
@@ -1261,152 +1284,152 @@ add_action('wp_ajax_seopress_wp_meta_seo_migration', 'seopress_wp_meta_seo_migra
1261
  //Export SEOPress metadata to CSV
1262
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1263
  function seopress_metadata_export() {
1264
- check_ajax_referer( 'seopress_export_csv_metadata_nonce', $_POST['_ajax_nonce'], true );
1265
 
1266
- if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
1267
 
1268
- if ( isset( $_POST['offset6']) && isset( $_POST['offset6'] )) {
1269
- $offset6 = absint($_POST['offset6']);
1270
- }
1271
 
1272
- $seopress_get_post_types = array();
1273
- foreach (seopress_get_post_types() as $seopress_cpt_key => $seopress_cpt_value) {
1274
- $seopress_get_post_types[] = $seopress_cpt_key;
1275
- }
1276
 
1277
- global $wpdb;
1278
- global $post;
1279
 
1280
- $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
1281
 
1282
- $increment = 200;
1283
 
1284
- $csv = '';
1285
- $csv = get_option('seopress_metadata_csv');
1286
- $download_url = '';
1287
 
1288
- $settings["id"] = array();
1289
- $settings["post_title"] = array();
1290
- $settings["url"] = array();
1291
- $settings["meta_title"] = array();
1292
- $settings["meta_desc"] = array();
1293
- $settings["fb_title"] = array();
1294
- $settings["fb_desc"] = array();
1295
- $settings["fb_img"] = array();
1296
- $settings["tw_title"] = array();
1297
- $settings["tw_desc"] = array();
1298
- $settings["tw_img"] = array();
1299
- $settings["noindex"] = array();
1300
- $settings["nofollow"] = array();
1301
- $settings["noodp"] = array();
1302
- $settings["noimageindex"] = array();
1303
- $settings["noarchive"] = array();
1304
- $settings["nosnippet"] = array();
1305
- $settings["canonical_url"] = array();
1306
- $settings["target_kw"] = array();
1307
 
1308
- if ($offset6 > $total_count_posts) {
1309
- wp_reset_query();
1310
 
1311
- update_option('seopress_metadata_csv', $csv);
1312
 
1313
- $args = array_merge( $_POST, array(
1314
- 'nonce' => wp_create_nonce( 'seopress_csv_batch_export_nonce' ),
1315
- 'page' => 'seopress-import-export',
1316
- 'seopress_action' => 'seopress_download_batch_export',
1317
- ) );
1318
 
1319
- $download_url = add_query_arg( $args, admin_url('admin.php') );
1320
 
1321
- $offset6 = 'done';
1322
- } else {
1323
- $args = array(
1324
- 'post_type' => $seopress_get_post_types,
1325
- 'posts_per_page' => $increment,
1326
- 'offset' => $offset6,
1327
- 'post_status' => 'any',
1328
- 'order' => 'DESC',
1329
- 'orderby' => 'date',
1330
- );
1331
- $args = apply_filters( 'seopress_metadata_query_args', $args, $seopress_get_post_types, $increment, $offset6 );
1332
- $meta_query = get_posts( $args );
1333
 
1334
- if ($meta_query) {
1335
- // The Loop
1336
- foreach ($meta_query as $post) {
1337
- array_push($settings["id"], $post->ID);
1338
 
1339
- array_push($settings["post_title"], $post->post_title);
1340
 
1341
- array_push($settings["url"], get_permalink($post));
1342
 
1343
- array_push($settings["meta_title"], get_post_meta( $post->ID, '_seopress_titles_title', true ));
1344
 
1345
- array_push($settings["meta_desc"], get_post_meta( $post->ID, '_seopress_titles_desc', true ));
1346
 
1347
- array_push($settings["fb_title"], get_post_meta( $post->ID, '_seopress_social_fb_title', true ));
1348
 
1349
- array_push($settings["fb_desc"], get_post_meta( $post->ID, '_seopress_social_fb_desc', true ));
1350
 
1351
- array_push($settings["fb_img"], get_post_meta( $post->ID, '_seopress_social_fb_img', true ));
1352
 
1353
- array_push($settings["tw_title"], get_post_meta( $post->ID, '_seopress_social_twitter_title', true ));
1354
 
1355
- array_push($settings["tw_desc"], get_post_meta( $post->ID, '_seopress_social_twitter_desc', true ));
1356
 
1357
- array_push($settings["tw_img"], get_post_meta( $post->ID, '_seopress_social_twitter_img', true ));
1358
 
1359
- array_push($settings["noindex"], get_post_meta( $post->ID, '_seopress_robots_index', true ));
1360
 
1361
- array_push($settings["nofollow"], get_post_meta( $post->ID, '_seopress_robots_follow', true ));
1362
 
1363
- array_push($settings["noodp"], get_post_meta( $post->ID, '_seopress_robots_odp', true ));
1364
 
1365
- array_push($settings["noimageindex"], get_post_meta( $post->ID, '_seopress_robots_imageindex', true ));
1366
 
1367
- array_push($settings["noarchive"], get_post_meta( $post->ID, '_seopress_robots_archive', true ));
1368
 
1369
- array_push($settings["nosnippet"], get_post_meta( $post->ID, '_seopress_robots_snippet', true ));
1370
 
1371
- array_push($settings["canonical_url"], get_post_meta( $post->ID, '_seopress_robots_canonical', true ));
1372
 
1373
- array_push($settings["target_kw"], get_post_meta( $post->ID, '_seopress_analysis_target_kw', true ));
1374
 
1375
- $csv[] = array_merge($settings["id"],$settings["post_title"],$settings["url"],$settings["meta_title"],$settings["meta_desc"],$settings["fb_title"],$settings["fb_desc"],$settings["fb_img"],$settings["tw_title"],$settings["tw_desc"],$settings["tw_img"],$settings["noindex"],$settings["nofollow"],$settings["noodp"],$settings["noimageindex"],$settings["noarchive"],$settings["nosnippet"],$settings["canonical_url"],$settings["target_kw"]);
1376
 
1377
- //Clean arrays
1378
- $settings["id"] = array();
1379
- $settings["post_title"] = array();
1380
- $settings["url"] = array();
1381
- $settings["meta_title"] = array();
1382
- $settings["meta_desc"] = array();
1383
- $settings["fb_title"] = array();
1384
- $settings["fb_desc"] = array();
1385
- $settings["fb_img"] = array();
1386
- $settings["tw_title"] = array();
1387
- $settings["tw_desc"] = array();
1388
- $settings["tw_img"] = array();
1389
- $settings["noindex"] = array();
1390
- $settings["nofollow"] = array();
1391
- $settings["noodp"] = array();
1392
- $settings["noimageindex"] = array();
1393
- $settings["noarchive"] = array();
1394
- $settings["nosnippet"] = array();
1395
- $settings["canonical_url"] = array();
1396
- $settings["target_kw"] = array();
1397
 
1398
- }
1399
- }
1400
- $offset6 += $increment;
1401
- update_option('seopress_metadata_csv', $csv);
1402
- }
1403
 
1404
- $data = array();
1405
- $data['offset6'] = $offset6;
1406
- $data['url'] = $download_url;
1407
- wp_send_json_success($data);
1408
 
1409
- die();
1410
- }
1411
  }
1412
  add_action('wp_ajax_seopress_metadata_export', 'seopress_metadata_export');
5
  //Get real preview + content analysis
6
  ///////////////////////////////////////////////////////////////////////////////////////////////////
7
  function seopress_do_real_preview() {
8
+ check_ajax_referer( 'seopress_real_preview_nonce', $_GET['_ajax_nonce'], true );
9
+
10
+ if ( current_user_can( 'edit_posts' ) && is_admin() ) {
11
+
12
+ //Get cookies
13
+ if (isset($_COOKIE)) {
14
+ $cookies = array();
15
+
16
+ foreach ( $_COOKIE as $name => $value ) {
17
+ if ( 'PHPSESSID' !== $name ) {
18
+ $cookies[] = new WP_Http_Cookie( ['name' => $name, 'value' => $value] );
19
+ }
20
+ }
21
+ }
22
+
23
+ //Get post id
24
+ if ( isset( $_GET['post_id'] ) ) {
25
+ $seopress_get_the_id = $_GET['post_id'];
26
+ }
27
+
28
+ if (get_post_meta($seopress_get_the_id,'_seopress_redirections_enabled',true) =='yes') {
29
+ $data['title'] = __('A redirect is active for this URL. Turn it off to get the Google preview and content analysis.', 'wp-seopress');
30
+ } else {
31
+ //Get cookies
32
+ if (isset($_COOKIE)) {
33
+ $cookies = [];
34
+
35
+ foreach ( $_COOKIE as $name => $value ) {
36
+ if ( 'PHPSESSID' !== $name ) {
37
+ $cookies[] = new WP_Http_Cookie( [ 'name' => $name, 'value' => $value ] );
38
+ }
39
+ }
40
+ }
41
+
42
+ //Get post type
43
+ if ( isset( $_GET['post_type'] ) ) {
44
+ $seopress_get_post_type = $_GET['post_type'];
45
+ }
46
+
47
+ //Origin
48
+ if ( isset( $_GET['origin'] ) ) {
49
+ $seopress_origin = $_GET['origin'];
50
+ }
51
+
52
+ //Tax name
53
+ if ( isset( $_GET['tax_name'] ) ) {
54
+ $seopress_tax_name = $_GET['tax_name'];
55
+ }
56
+
57
+ //Init
58
+ $title = '';
59
+ $meta_desc = '';
60
+ $data = [];
61
+
62
+ //Save Target KWs
63
+ if(isset($_GET['seopress_analysis_target_kw'])) {
64
+ delete_post_meta($seopress_get_the_id, '_seopress_analysis_target_kw');
65
+ update_post_meta($seopress_get_the_id, '_seopress_analysis_target_kw', sanitize_text_field($_GET['seopress_analysis_target_kw']));
66
+ }
67
+
68
+ //DOM
69
+ $dom = new DOMDocument();
70
+ $internalErrors = libxml_use_internal_errors(true);
71
+ $dom->preserveWhiteSpace = false;
72
+
73
+ //Get source code
74
+ $args = array(
75
+ 'blocking' => true,
76
+ 'timeout' => 30,
77
+ 'sslverify' => false,
78
+ );
79
+
80
+ if (isset($cookies) && !empty($cookies)) {
81
+ $args['cookies'] = $cookies;
82
+ }
83
+
84
+ $args = apply_filters('seopress_real_preview_remote', $args);
85
+
86
+ $data['title'] = $cookies;
87
+
88
+ if ($seopress_origin =='post') { //Default: post type
89
+ $response = wp_remote_get(get_preview_post_link((int)$seopress_get_the_id,array('no_admin_bar' => 1)), $args);
90
+ } else { //Term taxonomy
91
+ $response = wp_remote_get(get_term_link((int)$seopress_get_the_id, $seopress_tax_name), $args);
92
+ }
93
+ //Check for error
94
+ if ( is_wp_error( $response ) || wp_remote_retrieve_response_code($response) =='404' ) {
95
+ $data['title'] = __('To get your Google snippet preview, publish your post!', 'wp-seopress');
96
+ } else {
97
+ $response = wp_remote_retrieve_body($response);
98
+
99
+ if($dom->loadHTML('<?xml encoding="utf-8" ?>' .$response)) {
100
+
101
+ if (is_plugin_active('oxygen/functions.php') && function_exists('ct_template_output')) {
102
+ $data = get_post_meta($seopress_get_the_id, '_seopress_analysis_data', true) ? get_post_meta($seopress_get_the_id, '_seopress_analysis_data', true) : $data = [];
103
+
104
+ if (!empty($data)) {
105
+ $data = array_slice($data, 0, 3);
106
+ }
107
+ }
108
+
109
+ //Disable wptexturize
110
+ add_filter('run_wptexturize', '__return_false');
111
+
112
+ //Get post content (used for Words counter)
113
+ $seopress_get_the_content = apply_filters('the_content', get_post_field('post_content', $seopress_get_the_id));
114
+
115
+ //Themify compatibility
116
+ if ( defined( 'THEMIFY_DIR' ) ) {
117
+ $seopress_get_the_content = get_post_field('post_content', $seopress_get_the_id);
118
+ }
119
+
120
+ $seopress_get_the_content = apply_filters('seopress_content_analysis_content', $seopress_get_the_content, $seopress_get_the_id);
121
+
122
+ //Get Target Keywords
123
+ if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
124
+ $data['target_kws'] = strtolower(stripslashes_deep($_GET['seopress_analysis_target_kw']));
125
+ $seopress_analysis_target_kw = array_filter(explode(',', strtolower(esc_attr(get_post_meta($seopress_get_the_id,'_seopress_analysis_target_kw',true)))));
126
+
127
+ //Manage keywords with special characters
128
+ foreach ($seopress_analysis_target_kw as $key => $kw) {
129
+ $seopress_analysis_target_kw[$key] = htmlspecialchars_decode($kw,ENT_QUOTES);
130
+ }
131
+ }
132
+
133
+ $xpath = new DOMXPath($dom);
134
+
135
+ //Title
136
+ $list = $dom->getElementsByTagName("title");
137
+ if ($list->length > 0) {
138
+ $title = $list->item(0)->textContent;
139
+ $data['title'] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($title)));
140
+ if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
141
+ foreach ($seopress_analysis_target_kw as $kw) {
142
+ if (preg_match_all('#\b('.$kw.')\b#iu', $data['title'], $m)) {
143
+ $data['meta_title']['matches'][$kw][] = $m[0];
144
+ }
145
+ }
146
+ }
147
+ }
148
+
149
+ //Meta desc
150
+ $meta_description = $xpath->query('//meta[@name="description"]/@content');
151
+
152
+ foreach ($meta_description as $key=>$mdesc) {
153
+ $data['meta_desc'] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses(wp_strip_all_tags($mdesc->nodeValue))));
154
+ }
155
+
156
+ if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
157
+ if (!empty($meta_description)) {
158
+ foreach ($meta_description as $meta_desc) {
159
+ foreach ($seopress_analysis_target_kw as $kw) {
160
+ if (preg_match_all('#\b('.$kw.')\b#iu', $meta_desc->nodeValue, $m)) {
161
+ $data['meta_description']['matches'][$kw][] = $m[0];
162
+ }
163
+ }
164
+ }
165
+ }
166
+ }
167
+
168
+ //OG:title
169
+ $og_title = $xpath->query('//meta[@property="og:title"]/@content');
170
+
171
+ if (!empty($og_title)) {
172
+ $data['og_title']['count'] = count($og_title);
173
+ foreach ($og_title as $key=>$mogtitle) {
174
+ $data['og_title']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mogtitle->nodeValue)));
175
+ }
176
+ }
177
+
178
+ //OG:description
179
+ $og_desc = $xpath->query('//meta[@property="og:description"]/@content');
180
+
181
+ if (!empty($og_desc)) {
182
+ $data['og_desc']['count'] = count($og_desc);
183
+ foreach ($og_desc as $key=>$mog_desc) {
184
+ $data['og_desc']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_desc->nodeValue)));
185
+ }
186
+ }
187
+
188
+ //OG:image
189
+ $og_img = $xpath->query('//meta[@property="og:image"]/@content');
190
+
191
+ if (!empty($og_img)) {
192
+ $data['og_img']['count'] = count($og_img);
193
+ foreach ($og_img as $key=>$mog_img) {
194
+ $data['og_img']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_img->nodeValue)));
195
+ }
196
+ }
197
+
198
+ //OG:url
199
+ $og_url = $xpath->query('//meta[@property="og:url"]/@content');
200
+
201
+ if (!empty($og_url)) {
202
+ $data['og_url']['count'] = count($og_url);
203
+ foreach ($og_url as $key=>$mog_url) {
204
+ $url = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_url->nodeValue)));
205
+ $data['og_url']['values'][] = $url;
206
+ $url = wp_parse_url($url);
207
+ $data['og_url']['host'] = $url['host'];
208
+ }
209
+ }
210
+
211
+ //OG:site_name
212
+ $og_site_name = $xpath->query('//meta[@property="og:site_name"]/@content');
213
+
214
+ if (!empty($og_site_name)) {
215
+ $data['og_site_name']['count'] = count($og_site_name);
216
+ foreach ($og_site_name as $key=>$mog_site_name) {
217
+ $data['og_site_name']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mog_site_name->nodeValue)));
218
+ }
219
+ }
220
+
221
+ //Twitter:title
222
+ $tw_title = $xpath->query('//meta[@name="twitter:title"]/@content');
223
+
224
+ if (!empty($tw_title)) {
225
+ $data['tw_title']['count'] = count($tw_title);
226
+ foreach ($tw_title as $key=>$mtw_title) {
227
+ $data['tw_title']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_title->nodeValue)));
228
+ }
229
+ }
230
+
231
+ //Twitter:description
232
+ $tw_desc = $xpath->query('//meta[@name="twitter:description"]/@content');
233
+
234
+ if (!empty($tw_desc)) {
235
+ $data['tw_desc']['count'] = count($tw_desc);
236
+ foreach ($tw_desc as $key=>$mtw_desc) {
237
+ $data['tw_desc']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_desc->nodeValue)));
238
+ }
239
+ }
240
+
241
+ //Twitter:image
242
+ $tw_img = $xpath->query('//meta[@name="twitter:image"]/@content');
243
+
244
+ if (!empty($tw_img)) {
245
+ $data['tw_img']['count'] = count($tw_img);
246
+ foreach ($tw_img as $key=>$mtw_img) {
247
+ $data['tw_img']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_img->nodeValue)));
248
+ }
249
+ }
250
+
251
+ //Twitter:image:src
252
+ $tw_img = $xpath->query('//meta[@name="twitter:image:src"]/@content');
253
+
254
+ if (!empty($tw_img)) {
255
+ $count = NULL;
256
+ if (!empty($data['tw_img']['count'])) {
257
+ $count = $data['tw_img']['count'];
258
+ }
259
+
260
+ $data['tw_img']['count'] = count($tw_img) + $count;
261
+
262
+ foreach ($tw_img as $key=>$mtw_img) {
263
+ $data['tw_img']['values'][] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mtw_img->nodeValue)));
264
+ }
265
+ }
266
+
267
+ //Canonical
268
+ $canonical = $xpath->query('//link[@rel="canonical"]/@href');
269
+
270
+ foreach ($canonical as $key=>$mcanonical) {
271
+ $data['canonical'] = esc_attr(stripslashes_deep(wp_filter_nohtml_kses($mcanonical->nodeValue)));
272
+ }
273
+
274
+ if(isset($_GET['seopress_analysis_target_kw']) && !empty($_GET['seopress_analysis_target_kw'])) {
275
+ //h1
276
+ $h1 = $xpath->query("//h1");
277
+ if (!empty($h1)) {
278
+ $data['h1']['nomatches']['count'] = count($h1);
279
+ foreach ($h1 as $heading1) {
280
+ foreach ($seopress_analysis_target_kw as $kw) {
281
+ if (preg_match_all('#\b('.$kw.')\b#iu', $heading1->nodeValue, $m)) {
282
+ $data['h1']['matches'][$kw][] = $m[0];
283
+ }
284
+ }
285
+ $data['h1']['values'][] = esc_attr($heading1->nodeValue);
286
+ }
287
+ }
288
+
289
+ //h2
290
+ $h2 = $xpath->query("//h2");
291
+ if (!empty($h2)) {
292
+ foreach ($h2 as $heading2) {
293
+ foreach ($seopress_analysis_target_kw as $kw) {
294
+ if (preg_match_all('#\b('.$kw.')\b#iu', $heading2->nodeValue, $m)) {
295
+ $data['h2']['matches'][$kw][] = $m[0];
296
+ }
297
+ }
298
+ }
299
+ }
300
+
301
+ //h3
302
+ $h3 = $xpath->query("//h3");
303
+ if (!empty($h3)) {
304
+ foreach ($h3 as $heading3) {
305
+ foreach ($seopress_analysis_target_kw as $kw) {
306
+ if (preg_match_all('#\b('.$kw.')\b#iu', $heading3->nodeValue, $m)) {
307
+ $data['h3']['matches'][$kw][] = $m[0];
308
+ }
309
+ }
310
+ }
311
+ }
312
+
313
+ //Keywords density
314
+ if (!is_plugin_active('oxygen/functions.php') && !function_exists('ct_template_output')) { //disable for Oxygen
315
+ foreach ($seopress_analysis_target_kw as $kw) {
316
+ if (preg_match_all('#\b('.$kw.')\b#iu', stripslashes_deep(strip_tags(wp_filter_nohtml_kses($seopress_get_the_content))), $m)) {
317
+
318
+ $data['kws_density']['matches'][$kw][] = $m[0];
319
+ }
320
+ }
321
+ }
322
+
323
+ //Keywords in permalink
324
+ $post = get_post($seopress_get_the_id);
325
+ $kw_slug = urldecode($post->post_name);
326
+ $kw_slug = str_replace("-", " ", $kw_slug);
327
+
328
+ if (isset($kw_slug)) {
329
+ foreach ($seopress_analysis_target_kw as $kw) {
330
+ if (preg_match_all('#\b('.remove_accents($kw).')\b#iu', strip_tags(wp_filter_nohtml_kses($kw_slug)), $m)) {
331
+ $data['kws_permalink']['matches'][$kw][] = $m[0];
332
+ }
333
+ }
334
+ }
335
+ }
336
+
337
+ //Images
338
+ /*Standard images*/
339
+ $imgs = $xpath->query("//img");
340
+
341
+ if (!empty($imgs) && $imgs !=NULL) {
342
+ //init
343
+ $data_img = array();
344
+ foreach ($imgs as $img) {
345
+ if ($img->hasAttribute('src')) {
346
+ if ($img->hasAttribute('width') || $img->hasAttribute('height')) {
347
+ if ($img->getAttribute('width') > 1 || $img->getAttribute('height') > 1) {
348
+ if ($img->getAttribute('alt') ==='' || !$img->hasAttribute('alt')) {//if alt is empty or doesn't exist
349
+ $data_img[] .= $img->getAttribute('src');
350
+ }
351
+ }
352
+ } elseif ($img->getAttribute('alt') ==='' || !$img->hasAttribute('alt')) {//if alt is empty or doesn't exist
353
+ $img_src = download_url($img->getAttribute('src'));
354
+ if (is_wp_error($img_src) === false) {
355
+ if (filesize($img_src) > 100) {//Ignore files under 100 bytes
356
+ $data_img[] .= $img->getAttribute('src');
357
+ }
358
+ @unlink($img_src);
359
+ }
360
+ }
361
+ }
362
+ $data['img']['images'] = $data_img;
363
+ }
364
+ }
365
+
366
+ //Meta robots
367
+ $meta_robots = $xpath->query('//meta[@name="robots"]/@content');
368
+ if (!empty($meta_robots)) {
369
+ foreach ($meta_robots as $key=>$value) {
370
+ $data['meta_robots'][$key][] = esc_attr($value->nodeValue);
371
+ }
372
+ }
373
+
374
+ //Meta google noimageindex / nositelinkssearchbox
375
+ $meta_google = $xpath->query('//meta[@name="google"]/@content');
376
+ if (!empty($meta_google)) {
377
+ foreach ($meta_google as $key=>$mgnoimg) {
378
+ $data['meta_google'][$key][] = esc_attr($mgnoimg->nodeValue);
379
+ }
380
+ }
381
+
382
+ //nofollow links
383
+ $nofollow_links = $xpath->query("//a[contains(@rel, 'nofollow')]");
384
+ if (!empty($nofollow_links)) {
385
+ foreach ($nofollow_links as $key=>$link) {
386
+ $data['nofollow_links'][$key][$link->getAttribute('href')] = esc_attr($link->nodeValue);
387
+ }
388
+ }
389
+ }
390
+
391
+ //outbound links
392
+ $site_url = wp_parse_url(get_home_url(), PHP_URL_HOST);
393
+ $outbound_links = $xpath->query("//a[not(contains(@href, '".$site_url."'))]");
394
+ if (!empty($outbound_links)) {
395
+ foreach ($outbound_links as $key=>$link) {
396
+ if (!empty(wp_parse_url($link->getAttribute('href'), PHP_URL_HOST))) {
397
+ $data['outbound_links'][$key][$link->getAttribute('href')] = esc_attr($link->nodeValue);
398
+ }
399
+ }
400
+ }
401
+
402
+ //Words Counter
403
+ if (!is_plugin_active('oxygen/functions.php') && !function_exists('ct_template_output')) { //disable for Oxygen
404
+ if ($seopress_get_the_content !='') {
405
+ $data['words_counter'] = preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", strip_tags(wp_filter_nohtml_kses($seopress_get_the_content)), $matches);
406
+
407
+ if (!empty($matches[0])) {
408
+ $words_counter_unique = count(array_unique($matches[0]));
409
+ } else {
410
+ $words_counter_unique = '0';
411
+ }
412
+ $data['words_counter_unique'] = $words_counter_unique;
413
+ }
414
+ }
415
+
416
+ //Get schemas
417
+ $json_ld = $xpath->query( '//script[@type="application/ld+json"]' );
418
+ if (!empty($json_ld)) {
419
+ foreach($json_ld as $node) {
420
+ $json = json_decode($node->nodeValue, true);
421
+ if (isset($json['@type'])) {
422
+ $data['json'][] = $json['@type'];
423
+ }
424
+ }
425
+ }
426
+ }
427
+
428
+ libxml_use_internal_errors($internalErrors);
429
+ }
430
+
431
+ //Send data
432
+ if(isset($data)){
433
+ update_post_meta($seopress_get_the_id, '_seopress_analysis_data', $data);
434
+ }
435
+
436
+ //Re-enable QM
437
+ remove_filter( 'user_has_cap', 'seopress_disable_qm', 10, 3);
438
+
439
+ //Return
440
+ wp_send_json_success($data);
441
+ }
442
  }
443
  add_action('wp_ajax_seopress_do_real_preview', 'seopress_do_real_preview');
444
 
446
  //Flush permalinks
447
  ///////////////////////////////////////////////////////////////////////////////////////////////////
448
  function seopress_flush_permalinks() {
449
+ check_ajax_referer( 'seopress_flush_permalinks_nonce', $_GET['_ajax_nonce'], true );
450
+ flush_rewrite_rules();
451
  die();
452
  }
453
  add_action('wp_ajax_seopress_flush_permalinks', 'seopress_flush_permalinks');
456
  //Dashboard toggle features
457
  ///////////////////////////////////////////////////////////////////////////////////////////////////
458
  function seopress_toggle_features() {
459
+ check_ajax_referer( 'seopress_toggle_features_nonce', $_POST['_ajax_nonce'], true );
460
 
461
  if ( isset( $_POST['feature']) && isset( $_POST['feature_value'] )) {
462
  $seopress_toggle_options = get_option('seopress_toggle');
471
  //Dashboard hide notices
472
  ///////////////////////////////////////////////////////////////////////////////////////////////////
473
  function seopress_hide_notices() {
474
+ check_ajax_referer( 'seopress_hide_notices_nonce', $_POST['_ajax_nonce'], true );
475
+
476
+ if ( isset( $_POST['notice']) && isset( $_POST['notice_value'] )) {
477
+ $seopress_notices_options = get_option('seopress_notices');
478
+ $seopress_notices_options[$_POST['notice']] = $_POST['notice_value'];
479
+ update_option('seopress_notices', $seopress_notices_options, 'yes');
480
+ }
481
+ die();
482
  }
483
  add_action('wp_ajax_seopress_hide_notices', 'seopress_hide_notices');
484
 
486
  //Yoast migration
487
  ///////////////////////////////////////////////////////////////////////////////////////////////////
488
  function seopress_yoast_migration() {
489
+ check_ajax_referer( 'seopress_yoast_migrate_nonce', $_POST['_ajax_nonce'], true );
490
+
491
+ if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
492
+
493
+ if ( isset( $_POST['offset']) && isset( $_POST['offset'] )) {
494
+ $offset = absint($_POST['offset']);
495
+ }
496
+
497
+ global $wpdb;
498
+
499
+ $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
500
+
501
+ $increment = 200;
502
+ global $post;
503
+
504
+ if ($offset > $total_count_posts) {
505
+ wp_reset_query();
506
+
507
+ $yoast_query_terms = get_option('wpseo_taxonomy_meta');
508
+
509
+ if ($yoast_query_terms) {
510
+
511
+ foreach ($yoast_query_terms as $taxonomies => $taxonomie) {
512
+ foreach ($taxonomie as $term_id => $term_value) {
513
+ if ($term_value['wpseo_title'] !='') { //Import title tag
514
+ update_term_meta($term_id, '_seopress_titles_title', $term_value['wpseo_title']);
515
+ }
516
+ if ($term_value['wpseo_desc'] !='') { //Import meta desc
517
+ update_term_meta($term_id, '_seopress_titles_desc', $term_value['wpseo_desc']);
518
+ }
519
+ if ($term_value['wpseo_opengraph-title'] !='') { //Import Facebook Title
520
+ update_term_meta($term_id, '_seopress_social_fb_title', $term_value['wpseo_opengraph-title']);
521
+ }
522
+ if ($term_value['wpseo_opengraph-description'] !='') { //Import Facebook Desc
523
+ update_term_meta($term_id, '_seopress_social_fb_desc', $term_value['wpseo_opengraph-description']);
524
+ }
525
+ if ($term_value['wpseo_opengraph-image'] !='') { //Import Facebook Image
526
+ update_term_meta($term_id, '_seopress_social_fb_img', $term_value['wpseo_opengraph-image']);
527
+ }
528
+ if ($term_value['wpseo_twitter-title'] !='') { //Import Twitter Title
529
+ update_term_meta($term_id, '_seopress_social_twitter_title', $term_value['wpseo_twitter-title']);
530
+ }
531
+ if ($term_value['wpseo_twitter-description'] !='') { //Import Twitter Desc
532
+ update_term_meta($term_id, '_seopress_social_twitter_desc', $term_value['wpseo_twitter-description']);
533
+ }
534
+ if ($term_value['wpseo_twitter-image'] !='') { //Import Twitter Image
535
+ update_term_meta($term_id, '_seopress_social_twitter_img', $term_value['wpseo_twitter-image']);
536
+ }
537
+ if ($term_value['wpseo_noindex'] =='noindex') { //Import Robots NoIndex
538
+ update_term_meta($term_id, '_seopress_robots_index', "yes");
539
+ }
540
+ if ($term_value['wpseo_canonical'] !='') { //Import Canonical URL
541
+ update_term_meta($term_id, '_seopress_robots_canonical', $term_value['wpseo_canonical']);
542
+ }
543
+ }
544
+ }
545
+ }
546
+ $offset = 'done';
547
+ wp_reset_query();
548
+ } else {
549
+ $args = array(
550
+ 'posts_per_page' => $increment,
551
+ 'post_type' => 'any',
552
+ 'post_status' => 'any',
553
+ 'offset' => $offset,
554
+ );
555
+
556
+ $yoast_query = get_posts( $args );
557
+
558
+ if ($yoast_query) {
559
+ foreach ($yoast_query as $post) {
560
+ if (get_post_meta($post->ID, '_yoast_wpseo_title', true) !='') { //Import title tag
561
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_yoast_wpseo_title', true));
562
+ }
563
+ if (get_post_meta($post->ID, '_yoast_wpseo_metadesc', true) !='') { //Import meta desc
564
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_yoast_wpseo_metadesc', true));
565
+ }
566
+ if (get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true) !='') { //Import Facebook Title
567
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true));
568
+ }
569
+ if (get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true) !='') { //Import Facebook Desc
570
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true));
571
+ }
572
+ if (get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true) !='') { //Import Facebook Image
573
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true));
574
+ }
575
+ if (get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true) !='') { //Import Twitter Title
576
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true));
577
+ }
578
+ if (get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true) !='') { //Import Twitter Desc
579
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true));
580
+ }
581
+ if (get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true) !='') { //Import Twitter Image
582
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true));
583
+ }
584
+ if (get_post_meta($post->ID, '_yoast_wpseo_meta-robots-noindex', true) =='1') { //Import Robots NoIndex
585
+ update_post_meta($post->ID, '_seopress_robots_index', "yes");
586
+ }
587
+ if (get_post_meta($post->ID, '_yoast_wpseo_meta-robots-nofollow', true) =='1') { //Import Robots NoFollow
588
+ update_post_meta($post->ID, '_seopress_robots_follow', "yes");
589
+ }
590
+ if (get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true) !='') { //Import Robots NoOdp, NoImageIndex, NoArchive, NoSnippet
591
+ $yoast_wpseo_meta_robots_adv = get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true);
592
+
593
+ if (strpos($yoast_wpseo_meta_robots_adv, 'noodp') !== false) {
594
+ update_post_meta($post->ID, '_seopress_robots_odp', "yes");
595
+ }
596
+ if (strpos($yoast_wpseo_meta_robots_adv, 'noimageindex') !== false) {
597
+ update_post_meta($post->ID, '_seopress_robots_imageindex', "yes");
598
+ }
599
+ if (strpos($yoast_wpseo_meta_robots_adv, 'noarchive') !== false) {
600
+ update_post_meta($post->ID, '_seopress_robots_archive', "yes");
601
+ }
602
+ if (strpos($yoast_wpseo_meta_robots_adv, 'nosnippet') !== false) {
603
+ update_post_meta($post->ID, '_seopress_robots_snippet', "yes");
604
+ }
605
+ }
606
+ if (get_post_meta($post->ID, '_yoast_wpseo_canonical', true) !='') { //Import Canonical URL
607
+ update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_yoast_wpseo_canonical', true));
608
+ }
609
+ if (get_post_meta($post->ID, '_yoast_wpseo_focuskw', true) !='' || get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', true) !='') { //Import Focus Keywords
610
+ $y_fkws_clean = array(); //reset array
611
+
612
+ $y_fkws = get_post_meta($post->ID, '_yoast_wpseo_focuskeywords', false);
613
+
614
+ foreach ($y_fkws as $value) {
615
+ foreach (json_decode($value) as $key => $value) {
616
+ $y_fkws_clean[] .= $value->keyword;
617
+ }
618
+ }
619
+
620
+ $y_fkws_clean[] .= get_post_meta($post->ID, '_yoast_wpseo_focuskw', true);
621
+
622
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', implode(',',$y_fkws_clean));
623
+ }
624
+ }
625
+ }
626
+ $offset += $increment;
627
+ }
628
+ $data = array();
629
+ $data['offset'] = $offset;
630
+ wp_send_json_success($data);
631
+ die();
632
+ }
633
  }
634
  add_action('wp_ajax_seopress_yoast_migration', 'seopress_yoast_migration');
635
 
637
  //AIO migration
638
  ///////////////////////////////////////////////////////////////////////////////////////////////////
639
  function seopress_aio_migration() {
640
+ check_ajax_referer( 'seopress_aio_migrate_nonce', $_POST['_ajax_nonce'], true );
641
+
642
+ if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
643
+
644
+ if ( isset( $_POST['offset2']) && isset( $_POST['offset2'] )) {
645
+ $offset2 = absint($_POST['offset2']);
646
+ }
647
+
648
+ global $wpdb;
649
+ $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
650
+
651
+ $increment = 200;
652
+ global $post;
653
+
654
+ if ($offset2 > $total_count_posts) {
655
+ wp_reset_query();
656
+
657
+ $args = array(
658
+ //'number' => $increment,
659
+ 'hide_empty' => false,
660
+ //'offset' => $offset2,
661
+ 'fields' => 'ids',
662
+ );
663
+ $aio_query_terms = get_terms($args);
664
+
665
+ if ($aio_query_terms) {
666
+ foreach ($aio_query_terms as $term_id) {
667
+ if (get_term_meta($term_id, '_aioseop_title', true) !='') { //Import title tag
668
+ update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, '_aioseop_title', true));
669
+ }
670
+ if (get_term_meta($term_id, '_aioseop_description', true) !='') { //Import meta desc
671
+ update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, '_aioseop_description', true));
672
+ }
673
+ if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Title
674
+ $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
675
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
676
+ update_term_meta($term_id, '_seopress_social_fb_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
677
+ update_term_meta($term_id, '_seopress_social_twitter_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
678
+ }
679
+ }
680
+ if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Title
681
+ $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
682
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_desc'])) {
683
+ update_term_meta($term_id, '_seopress_social_fb_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
684
+ update_term_meta($term_id, '_seopress_social_twitter_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
685
+ }
686
+ }
687
+ if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Facebook Image
688
+ $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
689
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
690
+ update_term_meta($term_id, '_seopress_social_fb_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg']);
691
+ }
692
+ }
693
+ if (get_term_meta($term_id, '_aioseop_opengraph_settings', true) !='') { //Import Twitter Image
694
+ $_aioseop_opengraph_settings = get_term_meta($term_id, '_aioseop_opengraph_settings', true);
695
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
696
+ update_term_meta($term_id, '_seopress_social_twitter_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter']);
697
+ }
698
+ }
699
+ if (get_term_meta($term_id, '_aioseop_noindex', true) =='on') { //Import Robots NoIndex
700
+ update_term_meta($term_id, '_seopress_robots_index', "yes");
701
+ }
702
+ if (get_term_meta($term_id, '_aioseop_nofollow', true) =='on') { //Import Robots NoIndex
703
+ update_term_meta($term_id, '_seopress_robots_follow', "yes");
704
+ }
705
+ }
706
+ }
707
+ $offset2 = 'done';
708
+ wp_reset_query();
709
+ } else {
710
+ $args = array(
711
+ 'posts_per_page' => $increment,
712
+ 'post_type' => 'any',
713
+ 'post_status' => 'any',
714
+ 'offset' => $offset2,
715
+ );
716
+
717
+ $aio_query = get_posts( $args );
718
+
719
+ if ($aio_query) {
720
+ foreach ($aio_query as $post) {
721
+ if (get_post_meta($post->ID, '_aioseop_title', true) !='') { //Import title tag
722
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_aioseop_title', true));
723
+ }
724
+ if (get_post_meta($post->ID, '_aioseop_description', true) !='') { //Import meta desc
725
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_aioseop_description', true));
726
+ }
727
+ if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Title
728
+ $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
729
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_title'])) {
730
+ update_post_meta($post->ID, '_seopress_social_fb_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
731
+ update_post_meta($post->ID, '_seopress_social_twitter_title', $_aioseop_opengraph_settings['aioseop_opengraph_settings_title']);
732
+ }
733
+ }
734
+ if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Facebook / Twitter Desc
735
+ $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
736
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_desc'])) {
737
+ update_post_meta($post->ID, '_seopress_social_fb_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
738
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', $_aioseop_opengraph_settings['aioseop_opengraph_settings_desc']);
739
+ }
740
+ }
741
+ if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Facebook Image
742
+ $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
743
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_image'])) {
744
+ update_post_meta($post->ID, '_seopress_social_fb_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg']);
745
+ }
746
+ }
747
+ if (get_post_meta($post->ID, '_aioseop_opengraph_settings', true) !='') { //Import Twitter Image
748
+ $_aioseop_opengraph_settings = get_post_meta($post->ID, '_aioseop_opengraph_settings', true);
749
+ if (isset($_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter'])) {
750
+ update_post_meta($post->ID, '_seopress_social_twitter_img', $_aioseop_opengraph_settings['aioseop_opengraph_settings_customimg_twitter']);
751
+ }
752
+ }
753
+ if (get_post_meta($post->ID, '_aioseop_noindex', true) =='on') { //Import Robots NoIndex
754
+ update_post_meta($post->ID, '_seopress_robots_index', "yes");
755
+ }
756
+ if (get_post_meta($post->ID, '_aioseop_nofollow', true) =='on') { //Import Robots NoFollow
757
+ update_post_meta($post->ID, '_seopress_robots_follow', "yes");
758
+ }
759
+ }
760
+ }
761
+ $offset2 += $increment;
762
+ }
763
+ $data = array();
764
+ $data['offset2'] = $offset2;
765
+ wp_send_json_success($data);
766
+ die();
767
+ }
768
  }
769
  add_action('wp_ajax_seopress_aio_migration', 'seopress_aio_migration');
770
 
772
  //SEO Framework migration
773
  ///////////////////////////////////////////////////////////////////////////////////////////////////
774
  function seopress_seo_framework_migration() {
775
+ check_ajax_referer( 'seopress_seo_framework_migrate_nonce', $_POST['_ajax_nonce'], true );
776
+
777
+ if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
778
+
779
+ if ( isset( $_POST['offset3']) && isset( $_POST['offset3'] )) {
780
+ $offset3 = absint($_POST['offset3']);
781
+ }
782
+
783
+ global $wpdb;
784
+ $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
785
+
786
+ $increment = 200;
787
+ global $post;
788
+
789
+ if ($offset3 > $total_count_posts) {
790
+ wp_reset_query();
791
+
792
+ $args = array(
793
+ //'number' => $increment,
794
+ 'hide_empty' => false,
795
+ //'offset' => $offset3,
796
+ 'fields' => 'ids',
797
+ );
798
+ $seo_framework_query_terms = get_terms($args);
799
+
800
+ if ($seo_framework_query_terms) {
801
+ foreach ($seo_framework_query_terms as $term_id) {
802
+ if (get_term_meta($term_id, 'autodescription-term-settings', true) !='') {
803
+ $term_settings = get_term_meta($term_id, 'autodescription-term-settings', true);
804
+
805
+ if (!empty($term_settings['doctitle'])) { //Import title tag
806
+ update_term_meta($term_id, '_seopress_titles_title', $term_settings['doctitle']);
807
+ }
808
+ if (!empty($term_settings['description'])) { //Import meta desc
809
+ update_term_meta($term_id, '_seopress_titles_desc', $term_settings['description']);
810
+ }
811
+ if (!empty($term_settings['noindex'])) { //Import Robots NoIndex
812
+ update_term_meta($term_id, '_seopress_robots_index', "yes");
813
+ }
814
+ if (!empty($term_settings['nofollow'])) { //Import Robots NoFollow
815
+ update_term_meta($term_id, '_seopress_robots_follow', "yes");
816
+ }
817
+ if (!empty($term_settings['noarchive'])) { //Import Robots NoArchive
818
+ update_term_meta($term_id, '_seopress_robots_archive', "yes");
819
+ }
820
+ }
821
+ }
822
+ }
823
+ $offset3 = 'done';
824
+ wp_reset_query();
825
+ } else {
826
+ $args = array(
827
+ 'posts_per_page' => $increment,
828
+ 'post_type' => 'any',
829
+ 'post_status' => 'any',
830
+ 'offset' => $offset3,
831
+ );
832
+
833
+ $seo_framework_query = get_posts( $args );
834
+
835
+ if ($seo_framework_query) {
836
+ foreach ($seo_framework_query as $post) {
837
+ if (get_post_meta($post->ID, '_genesis_title', true) !='') { //Import title tag
838
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_genesis_title', true));
839
+ }
840
+ if (get_post_meta($post->ID, '_genesis_description', true) !='') { //Import meta desc
841
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_genesis_description', true));
842
+ }
843
+ if (get_post_meta($post->ID, '_open_graph_title', true) !='') { //Import Facebook Title
844
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_open_graph_title', true));
845
+ }
846
+ if (get_post_meta($post->ID, '_open_graph_description', true) !='') { //Import Facebook Desc
847
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_open_graph_description', true));
848
+ }
849
+ if (get_post_meta($post->ID, '_social_image_url', true) !='') { //Import Facebook Image
850
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_social_image_url', true));
851
+ }
852
+ if (get_post_meta($post->ID, '_twitter_title', true) !='') { //Import Twitter Title
853
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_twitter_title', true));
854
+ }
855
+ if (get_post_meta($post->ID, '_twitter_description', true) !='') { //Import Twitter Desc
856
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_twitter_description', true));
857
+ }
858
+ if (get_post_meta($post->ID, '_social_image_url', true) !='') { //Import Twitter Image
859
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_social_image_url', true));
860
+ }
861
+ if (get_post_meta($post->ID, '_genesis_noindex', true) =='1') { //Import Robots NoIndex
862
+ update_post_meta($post->ID, '_seopress_robots_index', "yes");
863
+ }
864
+ if (get_post_meta($post->ID, '_genesis_nofollow', true) =='1') { //Import Robots NoFollow
865
+ update_post_meta($post->ID, '_seopress_robots_follow', "yes");
866
+ }
867
+ if (get_post_meta($post->ID, '_genesis_noarchive', true) =='1') { //Import Robots NoArchive
868
+ update_post_meta($post->ID, '_seopress_robots_archive', "yes");
869
+ }
870
+ if (get_post_meta($post->ID, '_genesis_canonical_uri', true) !='') { //Import Canonical URL
871
+ update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, '_genesis_canonical_uri', true));
872
+ }
873
+ if (get_post_meta($post->ID, 'redirect', true) !='') { //Import Redirect URL
874
+ update_post_meta($post->ID, '_seopress_redirections_enabled', 'yes');
875
+ update_post_meta($post->ID, '_seopress_redirections_type', '301');
876
+ update_post_meta($post->ID, '_seopress_redirections_value', get_post_meta($post->ID, 'redirect', true));
877
+ }
878
+ }
879
+ }
880
+ $offset3 += $increment;
881
+ }
882
+ $data = array();
883
+ $data['offset3'] = $offset3;
884
+ wp_send_json_success($data);
885
+ die();
886
+ }
887
  }
888
  add_action('wp_ajax_seopress_seo_framework_migration', 'seopress_seo_framework_migration');
889
 
891
  //RK migration
892
  ///////////////////////////////////////////////////////////////////////////////////////////////////
893
  function seopress_rk_migration() {
894
+ check_ajax_referer( 'seopress_rk_migrate_nonce', $_POST['_ajax_nonce'], true );
895
+
896
+ if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
897
+
898
+ if ( isset( $_POST['offset4']) && isset( $_POST['offset4'] )) {
899
+ $offset4 = absint($_POST['offset4']);
900
+ }
901
+
902
+ global $wpdb;
903
+ $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
904
+
905
+ $increment = 200;
906
+ global $post;
907
+
908
+ if ($offset4 > $total_count_posts) {
909
+ wp_reset_query();
910
+
911
+ $args = array(
912
+ 'hide_empty' => false,
913
+ 'fields' => 'ids',
914
+ );
915
+ $rk_query_terms = get_terms($args);
916
+
917
+ if ($rk_query_terms) {
918
+ foreach ($rk_query_terms as $term_id) {
919
+ if (get_term_meta($term_id, 'rank_math_title', true) !='') { //Import title tag
920
+ update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, 'rank_math_title', true));
921
+ }
922
+ if (get_term_meta($term_id, 'rank_math_description', true) !='') { //Import title desc
923
+ update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, 'rank_math_description', true));
924
+ }
925
+ if (get_term_meta($term_id, 'rank_math_facebook_title', true) !='') { //Import Facebook Title
926
+ update_term_meta($term_id, '_seopress_social_fb_title', get_term_meta($term_id, 'rank_math_facebook_title', true));
927
+ }
928
+ if (get_term_meta($term_id, 'rank_math_facebook_description', true) !='') { //Import Facebook Desc
929
+ update_term_meta($term_id, '_seopress_social_fb_desc', get_term_meta($term_id, 'rank_math_facebook_description', true));
930
+ }
931
+ if (get_term_meta($term_id, 'rank_math_facebook_image', true) !='') { //Import Facebook Image
932
+ update_term_meta($term_id, '_seopress_social_fb_img', get_term_meta($term_id, 'rank_math_facebook_image', true));
933
+ }
934
+ if (get_term_meta($term_id, 'rank_math_twitter_title', true) !='') { //Import Twitter Title
935
+ update_term_meta($term_id, '_seopress_social_twitter_title', get_term_meta($term_id, 'rank_math_twitter_title', true));
936
+ }
937
+ if (get_term_meta($term_id, 'rank_math_twitter_description', true) !='') { //Import Twitter Desc
938
+ update_term_meta($term_id, '_seopress_social_twitter_desc', get_term_meta($term_id, 'rank_math_twitter_description', true));
939
+ }
940
+ if (get_term_meta($term_id, 'rank_math_twitter_image', true) !='') { //Import Twitter Image
941
+ update_term_meta($term_id, '_seopress_social_twitter_img', get_term_meta($term_id, 'rank_math_twitter_image', true));
942
+ }
943
+ if (get_term_meta($term_id, 'rank_math_robots', true) !='') { //Import Robots NoIndex, NoFollow, NoOdp, NoImageIndex, NoArchive, NoSnippet
944
+ $rank_math_robots = get_term_meta($term_id, 'rank_math_robots', true);
945
+
946
+ if (in_array('noindex', $rank_math_robots)) {
947
+ update_term_meta($term_id, '_seopress_robots_index', "yes");
948
+ }
949
+ if (in_array('nofollow', $rank_math_robots)) {
950
+ update_term_meta($term_id, '_seopress_robots_follow', "yes");
951
+ }
952
+ if (in_array('noodp', $rank_math_robots)) {
953
+ update_term_meta($term_id, '_seopress_robots_odp', "yes");
954
+ }
955
+ if (in_array('noimageindex', $rank_math_robots)) {
956
+ update_term_meta($term_id, '_seopress_robots_imageindex', "yes");
957
+ }
958
+ if (in_array('noarchive', $rank_math_robots)) {
959
+ update_term_meta($term_id, '_seopress_robots_archive', "yes");
960
+ }
961
+ if (in_array('nosnippet', $rank_math_robots)) {
962
+ update_term_meta($term_id, '_seopress_robots_snippet', "yes");
963
+ }
964
+ }
965
+ if (get_term_meta($term_id, 'rank_math_canonical_url', true) !='') { //Import Canonical URL
966
+ update_term_meta($term_id, '_seopress_robots_canonical', get_term_meta($term_id, 'rank_math_canonical_url', true));
967
+ }
968
+ if (get_term_meta($term_id, 'rank_math_focus_keyword', true) !='') { //Import Focus Keywords
969
+ update_term_meta($term_id, '_seopress_analysis_target_kw', get_term_meta($term_id, 'rank_math_focus_keyword', true));
970
+ }
971
+
972
+
973
+ }
974
+ }
975
+ $offset4 = 'done';
976
+ wp_reset_query();
977
+ } else {
978
+ $args = array(
979
+ 'posts_per_page' => $increment,
980
+ 'post_type' => 'any',
981
+ 'post_status' => 'any',
982
+ 'offset' => $offset4,
983
+ );
984
+
985
+ $rk_query = get_posts( $args );
986
+
987
+ if ($rk_query) {
988
+ foreach ($rk_query as $post) {
989
+ if (get_post_meta($post->ID, 'rank_math_title', true) !='') { //Import title tag
990
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, 'rank_math_title', true));
991
+ }
992
+ if (get_post_meta($post->ID, 'rank_math_description', true) !='') { //Import meta desc
993
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, 'rank_math_description', true));
994
+ }
995
+ if (get_post_meta($post->ID, 'rank_math_facebook_title', true) !='') { //Import Facebook Title
996
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, 'rank_math_facebook_title', true));
997
+ }
998
+ if (get_post_meta($post->ID, 'rank_math_facebook_description', true) !='') { //Import Facebook Desc
999
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, 'rank_math_facebook_description', true));
1000
+ }
1001
+ if (get_post_meta($post->ID, 'rank_math_facebook_image', true) !='') { //Import Facebook Image
1002
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, 'rank_math_facebook_image', true));
1003
+ }
1004
+ if (get_post_meta($post->ID, 'rank_math_twitter_title', true) !='') { //Import Twitter Title
1005
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, 'rank_math_twitter_title', true));
1006
+ }
1007
+ if (get_post_meta($post->ID, 'rank_math_twitter_description', true) !='') { //Import Twitter Desc
1008
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, 'rank_math_twitter_description', true));
1009
+ }
1010
+ if (get_post_meta($post->ID, 'rank_math_twitter_image', true) !='') { //Import Twitter Image
1011
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, 'rank_math_twitter_image', true));
1012
+ }
1013
+ if (get_post_meta($post->ID, 'rank_math_robots', true) !='') { //Import Robots NoIndex, NoFollow, NoOdp, NoImageIndex, NoArchive, NoSnippet
1014
+ $rank_math_robots = get_post_meta($post->ID, 'rank_math_robots', true);
1015
+
1016
+ if (in_array('noindex', $rank_math_robots)) {
1017
+ update_post_meta($post->ID, '_seopress_robots_index', "yes");
1018
+ }
1019
+ if (in_array('nofollow', $rank_math_robots)) {
1020
+ update_post_meta($post->ID, '_seopress_robots_follow', "yes");
1021
+ }
1022
+ if (in_array('noodp', $rank_math_robots)) {
1023
+ update_post_meta($post->ID, '_seopress_robots_odp', "yes");
1024
+ }
1025
+ if (in_array('noimageindex', $rank_math_robots)) {
1026
+ update_post_meta($post->ID, '_seopress_robots_imageindex', "yes");
1027
+ }
1028
+ if (in_array('noarchive', $rank_math_robots)) {
1029
+ update_post_meta($post->ID, '_seopress_robots_archive', "yes");
1030
+ }
1031
+ if (in_array('nosnippet', $rank_math_robots)) {
1032
+ update_post_meta($post->ID, '_seopress_robots_snippet', "yes");
1033
+ }
1034
+ }
1035
+ if (get_post_meta($post->ID, 'rank_math_canonical_url', true) !='') { //Import Canonical URL
1036
+ update_post_meta($post->ID, '_seopress_robots_canonical', get_post_meta($post->ID, 'rank_math_canonical_url', true));
1037
+ }
1038
+ if (get_post_meta($post->ID, 'rank_math_focus_keyword', true) !='') { //Import Focus Keywords
1039
+ update_post_meta($post->ID, '_seopress_analysis_target_kw', get_post_meta($post->ID, 'rank_math_focus_keyword', true));
1040
+ }
1041
+ }
1042
+ }
1043
+ $offset4 += $increment;
1044
+ }
1045
+ $data = array();
1046
+ $data['offset4'] = $offset4;
1047
+ wp_send_json_success($data);
1048
+ die();
1049
+ }
1050
  }
1051
  add_action('wp_ajax_seopress_rk_migration', 'seopress_rk_migration');
1052
 
1054
  //Squirrly migration
1055
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1056
  function seopress_squirrly_migration() {
1057
+ check_ajax_referer( 'seopress_squirrly_migrate_nonce', $_POST['_ajax_nonce'], true );
1058
+
1059
+ if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
1060
+
1061
+ if ( isset( $_POST['offset5']) && isset( $_POST['offset5'] )) {
1062
+ $offset5 = absint($_POST['offset5']);
1063
+ }
1064
+
1065
+ global $wpdb;
1066
+ $table_name = $wpdb->prefix . 'qss';
1067
+ $blog_id = get_current_blog_id();
1068
+
1069
+ $count_query = $wpdb->get_results( "SELECT * FROM $table_name WHERE blog_id = $blog_id", ARRAY_A );
1070
+
1071
+ if (!empty($count_query)) {
1072
+ foreach($count_query as $value) {
1073
+ $post_id = url_to_postid($value['URL']);
1074
+
1075
+ if ($post_id !=0 && !empty($value['seo'])) {
1076
+ $seo = maybe_unserialize($value['seo']);
1077
+
1078
+ if ($seo['title'] !='') { //Import title tag
1079
+ update_post_meta($post_id, '_seopress_titles_title', $seo['title']);
1080
+ }
1081
+ if ($seo['description'] !='') { //Import description tag
1082
+ update_post_meta($post_id, '_seopress_titles_desc', $seo['description']);
1083
+ }
1084
+ if ($seo['og_title'] !='') { //Import Facebook Title
1085
+ update_post_meta($post_id, '_seopress_social_fb_title', $seo['og_title']);
1086
+ }
1087
+ if ($seo['og_description'] !='') { //Import Facebook Desc
1088
+ update_post_meta($post_id, '_seopress_social_fb_desc', $seo['og_description']);
1089
+ }
1090
+ if ($seo['og_media'] !='') { //Import Facebook Image
1091
+ update_post_meta($post_id, '_seopress_social_fb_img', $seo['og_media']);
1092
+ }
1093
+ if ($seo['tw_title'] !='') { //Import Twitter Title
1094
+ update_post_meta($post_id, '_seopress_social_twitter_title', $seo['tw_title']);
1095
+ }
1096
+ if ($seo['tw_description'] !='') { //Import Twitter Desc
1097
+ update_post_meta($post_id, '_seopress_social_twitter_desc', $seo['tw_description']);
1098
+ }
1099
+ if ($seo['tw_media'] !='') { //Import Twitter Image
1100
+ update_post_meta($post_id, '_seopress_social_twitter_img', $seo['tw_media']);
1101
+ }
1102
+ if ($seo['noindex'] === 1) { //Import noindex
1103
+ update_post_meta($post_id, '_seopress_robots_index', 'yes');
1104
+ }
1105
+ if ($seo['nofollow'] === 1) { //Import nofollow
1106
+ update_post_meta($post_id, '_seopress_robots_follow', 'yes');
1107
+ }
1108
+ if ($seo['canonical'] !='') { //Import canonical
1109
+ update_post_meta($post_id, '_seopress_robots_canonical', $seo['canonical']);
1110
+ }
1111
+ }
1112
+ }
1113
+ $offset5 = 'done';
1114
+ }
1115
+ $data = array();
1116
+ $data['offset5'] = $offset5;
1117
+ wp_send_json_success($data);
1118
+ die();
1119
+ }
1120
  }
1121
  add_action('wp_ajax_seopress_squirrly_migration', 'seopress_squirrly_migration');
1122
 
1127
  */
1128
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1129
  function seopress_seo_ultimate_migration() {
1130
+ check_ajax_referer( 'seopress_seo_ultimate_migrate_nonce', $_POST['_ajax_nonce'], true );
1131
+
1132
+ if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
1133
+
1134
+ if ( isset( $_POST['offset7']) && isset( $_POST['offset7'] )) {
1135
+ $offset7 = absint($_POST['offset7']);
1136
+ }
1137
+
1138
+ global $wpdb;
1139
+
1140
+ $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
1141
+
1142
+ $increment = 200;
1143
+ global $post;
1144
+
1145
+ if ($offset7 > $total_count_posts) {
1146
+ $offset7 = 'done';
1147
+ wp_reset_query();
1148
+ } else {
1149
+ $args = array(
1150
+ 'posts_per_page' => $increment,
1151
+ 'post_type' => 'any',
1152
+ 'post_status' => 'any',
1153
+ 'offset' => $offset7,
1154
+ );
1155
+
1156
+ $su_query = get_posts( $args );
1157
+
1158
+ if ($su_query) {
1159
+ foreach ($su_query as $post) {
1160
+ if (get_post_meta($post->ID, '_su_title', true) !='') { //Import title tag
1161
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_su_title', true));
1162
+ }
1163
+ if (get_post_meta($post->ID, '_su_description', true) !='') { //Import meta desc
1164
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_su_description', true));
1165
+ }
1166
+ if (get_post_meta($post->ID, '_su_og_title', true) !='') { //Import Facebook Title
1167
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_su_og_title', true));
1168
+ }
1169
+ if (get_post_meta($post->ID, '_su_og_description', true) !='') { //Import Facebook Desc
1170
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_su_og_description', true));
1171
+ }
1172
+ if (get_post_meta($post->ID, '_su_og_image', true) !='') { //Import Facebook Image
1173
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_su_og_image', true));
1174
+ }
1175
+ if (get_post_meta($post->ID, '_su_meta_robots_noindex', true) =='1') { //Import Robots NoIndex
1176
+ update_post_meta($post->ID, '_seopress_robots_index', "yes");
1177
+ }
1178
+ if (get_post_meta($post->ID, '_su_meta_robots_nofollow', true) =='1') { //Import Robots NoFollow
1179
+ update_post_meta($post->ID, '_seopress_robots_follow', "yes");
1180
+ }
1181
+ }
1182
+ }
1183
+ $offset7 += $increment;
1184
+ }
1185
+ $data = array();
1186
+ $data['offset7'] = $offset7;
1187
+ wp_send_json_success($data);
1188
+ die();
1189
+ }
1190
  }
1191
  add_action('wp_ajax_seopress_seo_ultimate_migration', 'seopress_seo_ultimate_migration');
1192
 
1197
  */
1198
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1199
  function seopress_wp_meta_seo_migration() {
1200
+ check_ajax_referer( 'seopress_meta_seo_migrate_nonce', $_POST['_ajax_nonce'], true );
1201
+
1202
+ if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
1203
+
1204
+ if ( isset( $_POST['offset8']) && isset( $_POST['offset8'] )) {
1205
+ $offset8 = absint($_POST['offset8']);
1206
+ }
1207
+
1208
+ global $wpdb;
1209
+ $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
1210
+
1211
+ $increment = 200;
1212
+ global $post;
1213
+
1214
+ if ($offset8 > $total_count_posts) {
1215
+ wp_reset_query();
1216
+
1217
+ $args = array(
1218
+ 'hide_empty' => false,
1219
+ 'fields' => 'ids',
1220
+ );
1221
+ $wp_meta_seo_query_terms = get_terms($args);
1222
+
1223
+ if ($wp_meta_seo_query_terms) {
1224
+ foreach ($wp_meta_seo_query_terms as $term_id) {
1225
+ if (get_term_meta($term_id, 'wpms_category_metatitle', true) !='') { //Import title tag
1226
+ update_term_meta($term_id, '_seopress_titles_title', get_term_meta($term_id, 'wpms_category_metatitle', true));
1227
+ }
1228
+ if (get_term_meta($term_id, 'wpms_category_metadesc', true) !='') { //Import title desc
1229
+ update_term_meta($term_id, '_seopress_titles_desc', get_term_meta($term_id, 'wpms_category_metadesc', true));
1230
+ }
1231
+ }
1232
+ }
1233
+ $offset8 = 'done';
1234
+ wp_reset_query();
1235
+ } else {
1236
+ $args = array(
1237
+ 'posts_per_page' => $increment,
1238
+ 'post_type' => 'any',
1239
+ 'post_status' => 'any',
1240
+ 'offset' => $offset8,
1241
+ );
1242
+
1243
+ $wp_meta_seo_query = get_posts( $args );
1244
+
1245
+ if ($wp_meta_seo_query) {
1246
+ foreach ($wp_meta_seo_query as $post) {
1247
+ if (get_post_meta($post->ID, '_metaseo_metatitle', true) !='') { //Import title tag
1248
+ update_post_meta($post->ID, '_seopress_titles_title', get_post_meta($post->ID, '_metaseo_metatitle', true));
1249
+ }
1250
+ if (get_post_meta($post->ID, '_metaseo_metadesc', true) !='') { //Import meta desc
1251
+ update_post_meta($post->ID, '_seopress_titles_desc', get_post_meta($post->ID, '_metaseo_metadesc', true));
1252
+ }
1253
+ if (get_post_meta($post->ID, '_metaseo_metaopengraph-title', true) !='') { //Import Facebook Title
1254
+ update_post_meta($post->ID, '_seopress_social_fb_title', get_post_meta($post->ID, '_metaseo_metaopengraph-title', true));
1255
+ }
1256
+ if (get_post_meta($post->ID, '_metaseo_metaopengraph-desc', true) !='') { //Import Facebook Desc
1257
+ update_post_meta($post->ID, '_seopress_social_fb_desc', get_post_meta($post->ID, '_metaseo_metaopengraph-desc', true));
1258
+ }
1259
+ if (get_post_meta($post->ID, '_metaseo_metaopengraph-image', true) !='') { //Import Facebook Image
1260
+ update_post_meta($post->ID, '_seopress_social_fb_img', get_post_meta($post->ID, '_metaseo_metaopengraph-image', true));
1261
+ }
1262
+ if (get_post_meta($post->ID, '_metaseo_metatwitter-title', true) !='') { //Import Twitter Title
1263
+ update_post_meta($post->ID, '_seopress_social_twitter_title', get_post_meta($post->ID, '_metaseo_metatwitter-title', true));
1264
+ }
1265
+ if (get_post_meta($post->ID, '_metaseo_metatwitter-desc', true) !='') { //Import Twitter Desc
1266
+ update_post_meta($post->ID, '_seopress_social_twitter_desc', get_post_meta($post->ID, '_metaseo_metatwitter-desc', true));
1267
+ }
1268
+ if (get_post_meta($post->ID, '_metaseo_metatwitter-image', true) !='') { //Import Twitter Image
1269
+ update_post_meta($post->ID, '_seopress_social_twitter_img', get_post_meta($post->ID, '_metaseo_metatwitter-image', true));
1270
+ }
1271
+ }
1272
+ }
1273
+ $offset8 += $increment;
1274
+ }
1275
+ $data = array();
1276
+ $data['offset8'] = $offset8;
1277
+ wp_send_json_success($data);
1278
+ die();
1279
+ }
1280
  }
1281
  add_action('wp_ajax_seopress_wp_meta_seo_migration', 'seopress_wp_meta_seo_migration');
1282
 
1284
  //Export SEOPress metadata to CSV
1285
  ///////////////////////////////////////////////////////////////////////////////////////////////////
1286
  function seopress_metadata_export() {
1287
+ check_ajax_referer( 'seopress_export_csv_metadata_nonce', $_POST['_ajax_nonce'], true );
1288
 
1289
+ if ( current_user_can( seopress_capability( 'manage_options', 'migration' ) && is_admin() ) ) {
1290
 
1291
+ if ( isset( $_POST['offset6']) && isset( $_POST['offset6'] )) {
1292
+ $offset6 = absint($_POST['offset6']);
1293
+ }
1294
 
1295
+ $seopress_get_post_types = array();
1296
+ foreach (seopress_get_post_types() as $seopress_cpt_key => $seopress_cpt_value) {
1297
+ $seopress_get_post_types[] = $seopress_cpt_key;
1298
+ }
1299
 
1300
+ global $wpdb;
1301
+ global $post;
1302
 
1303
+ $total_count_posts = (int)$wpdb->get_var( "SELECT count(*) FROM {$wpdb->posts}" );
1304
 
1305
+ $increment = 200;
1306
 
1307
+ $csv = '';
1308
+ $csv = get_option('seopress_metadata_csv');
1309
+ $download_url = '';
1310
 
1311
+ $settings["id"] = array();
1312
+ $settings["post_title"] = array();
1313
+ $settings["url"] = array();
1314
+ $settings["meta_title"] = array();
1315
+ $settings["meta_desc"] = array();
1316
+ $settings["fb_title"] = array();
1317
+ $settings["fb_desc"] = array();
1318
+ $settings["fb_img"] = array();
1319
+ $settings["tw_title"] = array();
1320
+ $settings["tw_desc"] = array();
1321
+ $settings["tw_img"] = array();
1322
+ $settings["noindex"] = array();
1323
+ $settings["nofollow"] = array();
1324
+ $settings["noodp"] = array();
1325
+ $settings["noimageindex"] = array();
1326
+ $settings["noarchive"] = array();
1327
+ $settings["nosnippet"] = array();
1328
+ $settings["canonical_url"] = array();
1329
+ $settings["target_kw"] = array();
1330
 
1331
+ if ($offset6 > $total_count_posts) {
1332
+ wp_reset_query();
1333
 
1334
+ update_option('seopress_metadata_csv', $csv);
1335
 
1336
+ $args = array_merge( $_POST, array(
1337
+ 'nonce' => wp_create_nonce( 'seopress_csv_batch_export_nonce' ),
1338
+ 'page' => 'seopress-import-export',
1339
+ 'seopress_action' => 'seopress_download_batch_export',
1340
+ ) );
1341
 
1342
+ $download_url = add_query_arg( $args, admin_url('admin.php') );
1343
 
1344
+ $offset6 = 'done';
1345
+ } else {
1346
+ $args = array(
1347
+ 'post_type' => $seopress_get_post_types,
1348
+ 'posts_per_page' => $increment,
1349
+ 'offset' => $offset6,
1350
+ 'post_status' => 'any',
1351
+ 'order' => 'DESC',
1352
+ 'orderby' => 'date',
1353
+ );
1354
+ $args = apply_filters( 'seopress_metadata_query_args', $args, $seopress_get_post_types, $increment, $offset6 );
1355
+ $meta_query = get_posts( $args );
1356
 
1357
+ if ($meta_query) {
1358
+ // The Loop
1359
+ foreach ($meta_query as $post) {
1360
+ array_push($settings["id"], $post->ID);
1361
 
1362
+ array_push($settings["post_title"], $post->post_title);
1363
 
1364
+ array_push($settings["url"], get_permalink($post));
1365
 
1366
+ array_push($settings["meta_title"], get_post_meta( $post->ID, '_seopress_titles_title', true ));
1367
 
1368
+ array_push($settings["meta_desc"], get_post_meta( $post->ID, '_seopress_titles_desc', true ));
1369
 
1370
+ array_push($settings["fb_title"], get_post_meta( $post->ID, '_seopress_social_fb_title', true ));
1371
 
1372
+ array_push($settings["fb_desc"], get_post_meta( $post->ID, '_seopress_social_fb_desc', true ));
1373
 
1374
+ array_push($settings["fb_img"], get_post_meta( $post->ID, '_seopress_social_fb_img', true ));
1375
 
1376
+ array_push($settings["tw_title"], get_post_meta( $post->ID, '_seopress_social_twitter_title', true ));
1377
 
1378
+ array_push($settings["tw_desc"], get_post_meta( $post->ID, '_seopress_social_twitter_desc', true ));
1379
 
1380
+ array_push($settings["tw_img"], get_post_meta( $post->ID, '_seopress_social_twitter_img', true ));
1381
 
1382
+ array_push($settings["noindex"], get_post_meta( $post->ID, '_seopress_robots_index', true ));
1383
 
1384
+ array_push($settings["nofollow"], get_post_meta( $post->ID, '_seopress_robots_follow', true ));
1385
 
1386
+ array_push($settings["noodp"], get_post_meta( $post->ID, '_seopress_robots_odp', true ));
1387
 
1388
+ array_push($settings["noimageindex"], get_post_meta( $post->ID, '_seopress_robots_imageindex', true ));
1389
 
1390
+ array_push($settings["noarchive"], get_post_meta( $post->ID, '_seopress_robots_archive', true ));
1391
 
1392
+ array_push($settings["nosnippet"], get_post_meta( $post->ID, '_seopress_robots_snippet', true ));
1393
 
1394
+ array_push($settings["canonical_url"], get_post_meta( $post->ID, '_seopress_robots_canonical', true ));
1395
 
1396
+ array_push($settings["target_kw"], get_post_meta( $post->ID, '_seopress_analysis_target_kw', true ));
1397
 
1398
+ $csv[] = array_merge($settings["id"],$settings["post_title"],$settings["url"],$settings["meta_title"],$settings["meta_desc"],$settings["fb_title"],$settings["fb_desc"],$settings["fb_img"],$settings["tw_title"],$settings["tw_desc"],$settings["tw_img"],$settings["noindex"],$settings["nofollow"],$settings["noodp"],$settings["noimageindex"],$settings["noarchive"],$settings["nosnippet"],$settings["canonical_url"],$settings["target_kw"]);
1399
 
1400
+ //Clean arrays
1401
+ $settings["id"] = array();
1402
+ $settings["post_title"] = array();
1403
+ $settings["url"] = array();
1404
+ $settings["meta_title"] = array();
1405
+ $settings["meta_desc"] = array();
1406
+ $settings["fb_title"] = array();
1407
+ $settings["fb_desc"] = array();
1408
+ $settings["fb_img"] = array();
1409
+ $settings["tw_title"] = array();
1410
+ $settings["tw_desc"] = array();
1411
+ $settings["tw_img"] = array();
1412
+ $settings["noindex"] = array();
1413
+ $settings["nofollow"] = array();
1414
+ $settings["noodp"] = array();
1415
+ $settings["noimageindex"] = array();
1416
+ $settings["noarchive"] = array();
1417
+ $settings["nosnippet"] = array();
1418
+ $settings["canonical_url"] = array();
1419
+ $settings["target_kw"] = array();
1420
 
1421
+ }
1422
+ }
1423
+ $offset6 += $increment;
1424
+ update_option('seopress_metadata_csv', $csv);
1425
+ }
1426
 
1427
+ $data = array();
1428
+ $data['offset6'] = $offset6;
1429
+ $data['url'] = $download_url;
1430
+ wp_send_json_success($data);
1431
 
1432
+ die();
1433
+ }
1434
  }
1435
  add_action('wp_ajax_seopress_metadata_export', 'seopress_metadata_export');
inc/functions/options-advanced-admin.php CHANGED
@@ -406,8 +406,8 @@ if (seopress_advanced_appearance_title_col_option() !='' || seopress_advanced_ap
406
  break;
407
 
408
  case 'seopress_score' :
409
- if (get_post_meta($post_id, "_seopress_analysis_data", true)) {
410
- $ca = get_post_meta($post_id, "_seopress_analysis_data", true);
411
  echo '<div class="analysis-score">';
412
  if (isset($ca[0]["score"]) && $ca[0]["score"] == 1) {
413
  echo '<p><svg role="img" aria-hidden="true" focusable="false" width="100%" height="100%" viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg">
406
  break;
407
 
408
  case 'seopress_score' :
409
+ if (get_post_meta($post_id, "_seopress_analysis_data")) {
410
+ $ca = get_post_meta($post_id, "_seopress_analysis_data");
411
  echo '<div class="analysis-score">';
412
  if (isset($ca[0]["score"]) && $ca[0]["score"] == 1) {
413
  echo '<p><svg role="img" aria-hidden="true" focusable="false" width="100%" height="100%" viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg">
inc/functions/options-google-analytics.php CHANGED
@@ -188,7 +188,7 @@ if (seopress_google_analytics_disable_option() =='1' && ( (empty($_COOKIE["seopr
188
  $close_btn = __('X','wp-seopress');
189
  }
190
 
191
- $user_msg = '<div class="seopress-user-consent seopress-user-consent-hide" tabindex="10"><p>'.$msg.'<button id="seopress-user-consent-accept" tabindex="11">'.$consent_btn.'</button><button id="seopress-user-consent-close" tabindex="12">'.$close_btn.'</button></p></div>';
192
 
193
  $user_msg = apply_filters('seopress_rgpd_full_message', $user_msg, $msg, $consent_btn, $close_btn);
194
 
@@ -747,13 +747,14 @@ $seopress_google_analytics_html .= "gtag('js', new Date());\n";
747
  var links = document.querySelectorAll('a');
748
  for (let i = 0; i < links.length; i++) {
749
  links[i].addEventListener('click', function(e) {
750
- var n = this.href.includes('".get_home_url()."');
751
  if (n == false) {
752
  gtag('event', 'click', {'event_category': 'external links','event_label' : this.href});
753
  }
754
  });
755
  }
756
- });";
 
757
  $seopress_google_analytics_click_event['link_tracking'] = apply_filters('seopress_gtag_link_tracking_ev', $seopress_google_analytics_click_event['link_tracking']);
758
  $seopress_google_analytics_html .= $seopress_google_analytics_click_event['link_tracking'];
759
  }
@@ -763,13 +764,17 @@ $seopress_google_analytics_html .= "gtag('js', new Date());\n";
763
  if (seopress_google_analytics_download_tracking_enable_option() !='') {
764
  if (seopress_google_analytics_download_tracking_option() !='') {
765
  $seopress_google_analytics_click_event['download_tracking'] =
766
- "jQuery(document).ready(function() {
767
- jQuery('a').filter(function() {
768
- return this.href.match(/.*\.(".seopress_google_analytics_download_tracking_option().")(\?.*)?$/);
769
- }).click(function(e) {
770
- gtag('event', 'click', {'event_category': 'downloads','event_label' : this.href});
 
 
 
 
 
771
  });
772
- });
773
  ";
774
  $seopress_google_analytics_click_event['download_tracking'] = apply_filters('seopress_gtag_download_tracking_ev', $seopress_google_analytics_click_event['download_tracking']);
775
  $seopress_google_analytics_html .= $seopress_google_analytics_click_event['download_tracking'];
@@ -780,14 +785,17 @@ $seopress_google_analytics_html .= "gtag('js', new Date());\n";
780
  if (seopress_google_analytics_affiliate_tracking_enable_option() !='') {
781
  if (seopress_google_analytics_affiliate_tracking_option() !='') {
782
  $seopress_google_analytics_click_event['outbound_tracking'] =
783
- "jQuery(document).ready(function() {
784
- jQuery('a').filter(function() {
785
- return this.href.match(/(?:\/".seopress_google_analytics_affiliate_tracking_option()."\/)/gi);
786
- }).click(function(e) {
787
- gtag('event', 'click', {'event_category': 'outbound/affiliate','event_label' : this.href});
788
- });
789
- });
790
- ";
 
 
 
791
  $seopress_google_analytics_click_event['outbound_tracking'] = apply_filters('seopress_gtag_outbound_tracking_ev', $seopress_google_analytics_click_event['outbound_tracking']);
792
  $seopress_google_analytics_html .= $seopress_google_analytics_click_event['outbound_tracking'];
793
  }
188
  $close_btn = __('X','wp-seopress');
189
  }
190
 
191
+ $user_msg = '<div class="seopress-user-consent seopress-user-consent-hide" tabindex="10"><p>'.$msg.'<button id="seopress-user-consent-accept" type="button" tabindex="11">'.$consent_btn.'</button><button type="button" id="seopress-user-consent-close" tabindex="12">'.$close_btn.'</button></p></div>';
192
 
193
  $user_msg = apply_filters('seopress_rgpd_full_message', $user_msg, $msg, $consent_btn, $close_btn);
194
 
747
  var links = document.querySelectorAll('a');
748
  for (let i = 0; i < links.length; i++) {
749
  links[i].addEventListener('click', function(e) {
750
+ var n = this.href.includes('".wp_parse_url( get_home_url(), PHP_URL_HOST )."');
751
  if (n == false) {
752
  gtag('event', 'click', {'event_category': 'external links','event_label' : this.href});
753
  }
754
  });
755
  }
756
+ });
757
+ ";
758
  $seopress_google_analytics_click_event['link_tracking'] = apply_filters('seopress_gtag_link_tracking_ev', $seopress_google_analytics_click_event['link_tracking']);
759
  $seopress_google_analytics_html .= $seopress_google_analytics_click_event['link_tracking'];
760
  }
764
  if (seopress_google_analytics_download_tracking_enable_option() !='') {
765
  if (seopress_google_analytics_download_tracking_option() !='') {
766
  $seopress_google_analytics_click_event['download_tracking'] =
767
+ "window.addEventListener('load', function () {
768
+ var donwload_links = document.querySelectorAll('a');
769
+ for (let j = 0; j < donwload_links.length; j++) {
770
+ donwload_links[j].addEventListener('click', function(e) {
771
+ var down = this.href.match(/.*\.(".seopress_google_analytics_download_tracking_option().")(\?.*)?$/);
772
+ if (down != null) {
773
+ gtag('event', 'click', {'event_category': 'downloads','event_label' : this.href});
774
+ }
775
+ });
776
+ }
777
  });
 
778
  ";
779
  $seopress_google_analytics_click_event['download_tracking'] = apply_filters('seopress_gtag_download_tracking_ev', $seopress_google_analytics_click_event['download_tracking']);
780
  $seopress_google_analytics_html .= $seopress_google_analytics_click_event['download_tracking'];
785
  if (seopress_google_analytics_affiliate_tracking_enable_option() !='') {
786
  if (seopress_google_analytics_affiliate_tracking_option() !='') {
787
  $seopress_google_analytics_click_event['outbound_tracking'] =
788
+ "window.addEventListener('load', function () {
789
+ var outbound_links = document.querySelectorAll('a');
790
+ for (let k = 0; k < outbound_links.length; k++) {
791
+ outbound_links[k].addEventListener('click', function(e) {
792
+ var out = this.href.match(/(?:\/".seopress_google_analytics_affiliate_tracking_option()."\/)/gi);
793
+ if (out != null) {
794
+ gtag('event', 'click', {'event_category': 'outbound/affiliate','event_label' : this.href});
795
+ }
796
+ });
797
+ }
798
+ });";
799
  $seopress_google_analytics_click_event['outbound_tracking'] = apply_filters('seopress_gtag_outbound_tracking_ev', $seopress_google_analytics_click_event['outbound_tracking']);
800
  $seopress_google_analytics_html .= $seopress_google_analytics_click_event['outbound_tracking'];
801
  }
inc/functions/options-social.php CHANGED
@@ -351,7 +351,9 @@ function seopress_social_facebook_og_url_hook() {
351
  $seopress_social_og_url = apply_filters('seopress_social_og_url', $seopress_social_og_url);
352
  }
353
 
354
- echo $seopress_social_og_url."\n";
 
 
355
  }
356
  }
357
  add_action( 'wp_head', 'seopress_social_facebook_og_url_hook', 1 );
@@ -367,7 +369,9 @@ function seopress_social_facebook_og_site_name_hook() {
367
  $seopress_social_og_site_name = apply_filters('seopress_social_og_site_name', $seopress_social_og_site_name);
368
  }
369
 
370
- echo $seopress_social_og_site_name."\n";
 
 
371
  }
372
  }
373
  add_action( 'wp_head', 'seopress_social_facebook_og_site_name_hook', 1 );
@@ -406,7 +410,9 @@ function seopress_social_facebook_og_locale_hook() {
406
  }
407
 
408
  if (isset($seopress_social_og_locale) && $seopress_social_og_locale !='') {
409
- echo $seopress_social_og_locale."\n";
 
 
410
  }
411
  }
412
  }
@@ -437,8 +443,10 @@ function seopress_social_facebook_og_type_hook() {
437
  //Hook on post OG type - 'seopress_social_og_type'
438
  if (has_filter('seopress_social_og_type')) {
439
  $seopress_social_og_type = apply_filters('seopress_social_og_type', $seopress_social_og_type);
440
- }
441
- echo $seopress_social_og_type."\n";
 
 
442
  }
443
  }
444
  }
@@ -584,7 +592,9 @@ function seopress_social_fb_title_hook() {
584
  $seopress_social_og_title = apply_filters('seopress_social_og_title', $seopress_social_og_title);
585
  }
586
  if (isset($seopress_social_og_title) && $seopress_social_og_title !='') {
587
- echo $seopress_social_og_title;
 
 
588
  }
589
  }
590
  }
@@ -663,7 +673,9 @@ function seopress_social_fb_desc_hook() {
663
  $seopress_social_og_desc = apply_filters('seopress_social_og_desc', $seopress_social_og_desc);
664
  }
665
  if (isset($seopress_social_og_desc) && $seopress_social_og_desc !='') {
666
- echo $seopress_social_og_desc;
 
 
667
  }
668
  }
669
  }
@@ -857,7 +869,9 @@ function seopress_social_fb_img_hook() {
857
  $seopress_social_og_thumb = apply_filters('seopress_social_og_thumb', $seopress_social_og_thumb);
858
  }
859
  if (isset($seopress_social_og_thumb) && $seopress_social_og_thumb !='') {
860
- echo $seopress_social_og_thumb;
 
 
861
  }
862
  }
863
  }
@@ -900,7 +914,9 @@ function seopress_social_facebook_admin_id_hook() {
900
 
901
  $seopress_social_admin_id = '<meta property="fb:admins" content="'.seopress_social_facebook_admin_id_option().'" />';
902
 
903
- echo $seopress_social_admin_id."\n";
 
 
904
  }
905
  }
906
  add_action( 'wp_head', 'seopress_social_facebook_admin_id_hook', 1 );
@@ -921,7 +937,9 @@ function seopress_social_facebook_app_id_hook() {
921
 
922
  $seopress_social_app_id = '<meta property="fb:app_id" content="'.seopress_social_facebook_app_id_option().'" />';
923
 
924
- echo $seopress_social_app_id."\n";
 
 
925
  }
926
  }
927
  add_action( 'wp_head', 'seopress_social_facebook_app_id_hook', 1 );
@@ -974,8 +992,11 @@ function seopress_social_twitter_card_summary_hook() {
974
  //Hook on post Twitter card summary - 'seopress_social_twitter_card_summary'
975
  if (has_filter('seopress_social_twitter_card_summary')) {
976
  $seopress_social_twitter_card_summary = apply_filters('seopress_social_twitter_card_summary', $seopress_social_twitter_card_summary);
977
- }
978
- echo $seopress_social_twitter_card_summary."\n";
 
 
 
979
  }
980
  }
981
  add_action( 'wp_head', 'seopress_social_twitter_card_summary_hook', 1 );
@@ -989,8 +1010,11 @@ function seopress_social_twitter_card_site_hook() {
989
  //Hook on post Twitter card site - 'seopress_social_twitter_card_site'
990
  if (has_filter('seopress_social_twitter_card_site')) {
991
  $seopress_social_twitter_card_site = apply_filters('seopress_social_twitter_card_site', $seopress_social_twitter_card_site);
992
- }
993
- echo $seopress_social_twitter_card_site."\n";
 
 
 
994
  }
995
  }
996
  add_action( 'wp_head', 'seopress_social_twitter_card_site_hook', 1 );
@@ -1013,7 +1037,9 @@ function seopress_social_twitter_card_creator_hook() {
1013
  $seopress_social_twitter_card_creator = apply_filters('seopress_social_twitter_card_creator', $seopress_social_twitter_card_creator);
1014
  }
1015
  if (isset($seopress_social_twitter_card_creator) && $seopress_social_twitter_card_creator !='') {
1016
- echo $seopress_social_twitter_card_creator."\n";
 
 
1017
  }
1018
  }
1019
  add_action( 'wp_head', 'seopress_social_twitter_card_creator_hook', 1 );
@@ -1088,7 +1114,9 @@ function seopress_social_twitter_title_hook() {
1088
  $seopress_social_twitter_card_title = apply_filters('seopress_social_twitter_card_title', $seopress_social_twitter_card_title);
1089
  }
1090
  if (isset($seopress_social_twitter_card_title) && $seopress_social_twitter_card_title !='') {
1091
- echo $seopress_social_twitter_card_title."\n";
 
 
1092
  }
1093
  }
1094
  }
@@ -1171,7 +1199,9 @@ function seopress_social_twitter_desc_hook() {
1171
  $seopress_social_twitter_card_desc = apply_filters('seopress_social_twitter_card_desc', $seopress_social_twitter_card_desc);
1172
  }
1173
  if (isset($seopress_social_twitter_card_desc) && $seopress_social_twitter_card_desc !='') {
1174
- echo $seopress_social_twitter_card_desc."\n";
 
 
1175
  }
1176
  }
1177
  }
@@ -1300,8 +1330,10 @@ function seopress_social_twitter_img_hook() {
1300
  $seopress_social_twitter_card_thumb = apply_filters('seopress_social_twitter_card_thumb', $seopress_social_twitter_card_thumb);
1301
  }
1302
  if (isset($seopress_social_twitter_card_thumb) && $seopress_social_twitter_card_thumb !='') {
1303
- echo $seopress_social_twitter_card_thumb."\n";
 
 
1304
  }
1305
  }
1306
  }
1307
- add_action( 'wp_head', 'seopress_social_twitter_img_hook', 1 );
351
  $seopress_social_og_url = apply_filters('seopress_social_og_url', $seopress_social_og_url);
352
  }
353
 
354
+ if (!is_404()) {
355
+ echo $seopress_social_og_url."\n";
356
+ }
357
  }
358
  }
359
  add_action( 'wp_head', 'seopress_social_facebook_og_url_hook', 1 );
369
  $seopress_social_og_site_name = apply_filters('seopress_social_og_site_name', $seopress_social_og_site_name);
370
  }
371
 
372
+ if (!is_404()) {
373
+ echo $seopress_social_og_site_name."\n";
374
+ }
375
  }
376
  }
377
  add_action( 'wp_head', 'seopress_social_facebook_og_site_name_hook', 1 );
410
  }
411
 
412
  if (isset($seopress_social_og_locale) && $seopress_social_og_locale !='') {
413
+ if (!is_404()) {
414
+ echo $seopress_social_og_locale."\n";
415
+ }
416
  }
417
  }
418
  }
443
  //Hook on post OG type - 'seopress_social_og_type'
444
  if (has_filter('seopress_social_og_type')) {
445
  $seopress_social_og_type = apply_filters('seopress_social_og_type', $seopress_social_og_type);
446
+ }
447
+ if (!is_404()) {
448
+ echo $seopress_social_og_type."\n";
449
+ }
450
  }
451
  }
452
  }
592
  $seopress_social_og_title = apply_filters('seopress_social_og_title', $seopress_social_og_title);
593
  }
594
  if (isset($seopress_social_og_title) && $seopress_social_og_title !='') {
595
+ if (!is_404()) {
596
+ echo $seopress_social_og_title;
597
+ }
598
  }
599
  }
600
  }
673
  $seopress_social_og_desc = apply_filters('seopress_social_og_desc', $seopress_social_og_desc);
674
  }
675
  if (isset($seopress_social_og_desc) && $seopress_social_og_desc !='') {
676
+ if (!is_404()) {
677
+ echo $seopress_social_og_desc;
678
+ }
679
  }
680
  }
681
  }
869
  $seopress_social_og_thumb = apply_filters('seopress_social_og_thumb', $seopress_social_og_thumb);
870
  }
871
  if (isset($seopress_social_og_thumb) && $seopress_social_og_thumb !='') {
872
+ if (!is_404()) {
873
+ echo $seopress_social_og_thumb;
874
+ }
875
  }
876
  }
877
  }
914
 
915
  $seopress_social_admin_id = '<meta property="fb:admins" content="'.seopress_social_facebook_admin_id_option().'" />';
916
 
917
+ if (!is_404()) {
918
+ echo $seopress_social_admin_id."\n";
919
+ }
920
  }
921
  }
922
  add_action( 'wp_head', 'seopress_social_facebook_admin_id_hook', 1 );
937
 
938
  $seopress_social_app_id = '<meta property="fb:app_id" content="'.seopress_social_facebook_app_id_option().'" />';
939
 
940
+ if (!is_404()) {
941
+ echo $seopress_social_app_id."\n";
942
+ }
943
  }
944
  }
945
  add_action( 'wp_head', 'seopress_social_facebook_app_id_hook', 1 );
992
  //Hook on post Twitter card summary - 'seopress_social_twitter_card_summary'
993
  if (has_filter('seopress_social_twitter_card_summary')) {
994
  $seopress_social_twitter_card_summary = apply_filters('seopress_social_twitter_card_summary', $seopress_social_twitter_card_summary);
995
+ }
996
+
997
+ if (!is_404()) {
998
+ echo $seopress_social_twitter_card_summary."\n";
999
+ }
1000
  }
1001
  }
1002
  add_action( 'wp_head', 'seopress_social_twitter_card_summary_hook', 1 );
1010
  //Hook on post Twitter card site - 'seopress_social_twitter_card_site'
1011
  if (has_filter('seopress_social_twitter_card_site')) {
1012
  $seopress_social_twitter_card_site = apply_filters('seopress_social_twitter_card_site', $seopress_social_twitter_card_site);
1013
+ }
1014
+
1015
+ if (!is_404()) {
1016
+ echo $seopress_social_twitter_card_site."\n";
1017
+ }
1018
  }
1019
  }
1020
  add_action( 'wp_head', 'seopress_social_twitter_card_site_hook', 1 );
1037
  $seopress_social_twitter_card_creator = apply_filters('seopress_social_twitter_card_creator', $seopress_social_twitter_card_creator);
1038
  }
1039
  if (isset($seopress_social_twitter_card_creator) && $seopress_social_twitter_card_creator !='') {
1040
+ if (!is_404()) {
1041
+ echo $seopress_social_twitter_card_creator."\n";
1042
+ }
1043
  }
1044
  }
1045
  add_action( 'wp_head', 'seopress_social_twitter_card_creator_hook', 1 );
1114
  $seopress_social_twitter_card_title = apply_filters('seopress_social_twitter_card_title', $seopress_social_twitter_card_title);
1115
  }
1116
  if (isset($seopress_social_twitter_card_title) && $seopress_social_twitter_card_title !='') {
1117
+ if (!is_404()) {
1118
+ echo $seopress_social_twitter_card_title."\n";
1119
+ }
1120
  }
1121
  }
1122
  }
1199
  $seopress_social_twitter_card_desc = apply_filters('seopress_social_twitter_card_desc', $seopress_social_twitter_card_desc);
1200
  }
1201
  if (isset($seopress_social_twitter_card_desc) && $seopress_social_twitter_card_desc !='') {
1202
+ if (!is_404()) {
1203
+ echo $seopress_social_twitter_card_desc."\n";
1204
+ }
1205
  }
1206
  }
1207
  }
1330
  $seopress_social_twitter_card_thumb = apply_filters('seopress_social_twitter_card_thumb', $seopress_social_twitter_card_thumb);
1331
  }
1332
  if (isset($seopress_social_twitter_card_thumb) && $seopress_social_twitter_card_thumb !='') {
1333
+ if (!is_404()) {
1334
+ echo $seopress_social_twitter_card_thumb."\n";
1335
+ }
1336
  }
1337
  }
1338
  }
1339
+ add_action( 'wp_head', 'seopress_social_twitter_img_hook', 1 );
inc/functions/options-titles-metas.php CHANGED
@@ -1296,7 +1296,7 @@ if (function_exists('seopress_titles_noindex_bypass') && seopress_titles_noindex
1296
  echo $seopress_titles_canonical."\n";
1297
  }
1298
  add_action( 'wp_head', 'seopress_titles_canonical_term_hook', 1 );
1299
- } else { //DEFAULT CANONICAL
1300
  function seopress_titles_canonical_hook() {
1301
  global $wp;
1302
  if (seopress_advanced_advanced_trailingslash_option()) {
1296
  echo $seopress_titles_canonical."\n";
1297
  }
1298
  add_action( 'wp_head', 'seopress_titles_canonical_term_hook', 1 );
1299
+ } elseif (!is_404()) { //DEFAULT CANONICAL
1300
  function seopress_titles_canonical_hook() {
1301
  global $wp;
1302
  if (seopress_advanced_advanced_trailingslash_option()) {
inc/functions/options.php CHANGED
@@ -427,21 +427,13 @@ if (seopress_get_toggle_option('advanced') =='1') {
427
  //primary category
428
  function seopress_titles_primary_cat_hook($cats_0, $cats, $post) {
429
  $primary_cat = NULL;
430
- if (!is_admin()) {
431
- global $post;
432
- global $product;
433
- }
434
- $post = get_post( $post );
435
- if (function_exists('wc_get_product')) {
436
- $product = wc_get_product( $post->ID );
437
- }
438
  if ($post) {
439
  $_seopress_robots_primary_cat = get_post_meta($post->ID,'_seopress_robots_primary_cat',true);
440
  if (isset($_seopress_robots_primary_cat) && $_seopress_robots_primary_cat !='' && $_seopress_robots_primary_cat !='none') {
441
  if ($post->post_type !=NULL && $post->post_type =='post') {
442
  $primary_cat = get_category($_seopress_robots_primary_cat);
443
- } elseif ($post->post_type !=NULL && $post->post_type =='product') {
444
- $primary_cat = get_term($_seopress_robots_primary_cat, 'product_cat');
445
  }
446
  if (!is_wp_error($primary_cat) && $primary_cat !=NULL) {
447
  return $primary_cat;
@@ -455,12 +447,34 @@ if (seopress_get_toggle_option('advanced') =='1') {
455
  }
456
  }
457
  add_filter( 'post_link_category', 'seopress_titles_primary_cat_hook', 10, 3 );
458
- //add_filter( 'post_link', 'seopress_titles_primary_cat_hook', 10, 3 );
459
- //add_filter( 'post_type_link', 'seopress_titles_primary_cat_hook', 10, 3 );
460
- //https://developer.wordpress.org/reference/hooks/post_link_category/
461
- //https://developer.wordpress.org/reference/hooks/post_type_link/
462
- //https://rudrastyh.com/wordpress/taxonomy-slug-in-post-type-url.html
463
- //https://rudrastyh.com/plugins/meta-boxes-options-pages#gutenbers_sidebars
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
464
 
465
  //No /category/ in URL
466
  function seopress_advanced_advanced_category_url_option() {
@@ -475,10 +489,15 @@ if (seopress_get_toggle_option('advanced') =='1') {
475
  }
476
 
477
  if (seopress_advanced_advanced_category_url_option() !='') {
 
 
 
 
 
478
  //@credits : WordPress VIP
479
  add_filter( 'category_rewrite_rules', 'seopress_filter_category_rewrite_rules' );
480
  function seopress_filter_category_rewrite_rules( $rules ) {
481
- if ( class_exists( 'Sitepress' ) ) {
482
  global $sitepress;
483
  remove_filter( 'terms_clauses', array( $sitepress, 'terms_clauses' ) );
484
  $categories = get_categories( array( 'hide_empty' => false ) );
@@ -542,7 +561,7 @@ if (seopress_get_toggle_option('advanced') =='1') {
542
  }
543
 
544
  $category_base = get_option( 'category_base' );
545
-
546
  if ($category_base !='') {
547
  if (preg_match('/\/'.$category_base.'\//', $current_url)) {
548
  $new_url = str_replace('/'.$category_base, '', $current_url);
@@ -551,6 +570,7 @@ if (seopress_get_toggle_option('advanced') =='1') {
551
  }
552
  } else {
553
  $category_base = 'category';
 
554
  if (preg_match('/\/'.$category_base.'\//', $current_url)) {
555
  $new_url = str_replace('/'.$category_base, '', $current_url);
556
  wp_redirect($new_url, 301 );
@@ -559,4 +579,4 @@ if (seopress_get_toggle_option('advanced') =='1') {
559
  }
560
  }
561
  }
562
- }
427
  //primary category
428
  function seopress_titles_primary_cat_hook($cats_0, $cats, $post) {
429
  $primary_cat = NULL;
430
+ global $post;
431
+
 
 
 
 
 
 
432
  if ($post) {
433
  $_seopress_robots_primary_cat = get_post_meta($post->ID,'_seopress_robots_primary_cat',true);
434
  if (isset($_seopress_robots_primary_cat) && $_seopress_robots_primary_cat !='' && $_seopress_robots_primary_cat !='none') {
435
  if ($post->post_type !=NULL && $post->post_type =='post') {
436
  $primary_cat = get_category($_seopress_robots_primary_cat);
 
 
437
  }
438
  if (!is_wp_error($primary_cat) && $primary_cat !=NULL) {
439
  return $primary_cat;
447
  }
448
  }
449
  add_filter( 'post_link_category', 'seopress_titles_primary_cat_hook', 10, 3 );
450
+
451
+ function seopress_titles_primary_wc_cat_hook( $terms_0, $terms, $post ) {
452
+ $primary_cat = NULL;
453
+
454
+ $id = get_the_ID();
455
+
456
+ if (function_exists('wc_get_product')) {
457
+ $post = wc_get_product($id);
458
+ }
459
+ if ($post) {
460
+ $_seopress_robots_primary_cat = get_post_meta($id,'_seopress_robots_primary_cat',true);
461
+
462
+ if (isset($_seopress_robots_primary_cat) && $_seopress_robots_primary_cat !='' && $_seopress_robots_primary_cat !='none') {
463
+ if ($post->post_type !=NULL && $post->post_type =='product') {
464
+ $primary_cat = get_term($_seopress_robots_primary_cat, 'product_cat');
465
+ }
466
+ if (!is_wp_error($primary_cat) && $primary_cat !=NULL) {
467
+ return $primary_cat;
468
+ }
469
+ } else {
470
+ //no primary cat
471
+ return $terms_0;
472
+ }
473
+ } else {
474
+ return $terms_0;
475
+ }
476
+ }
477
+ add_filter( 'wc_product_post_type_link_product_cat', 'seopress_titles_primary_wc_cat_hook', 10, 3 );
478
 
479
  //No /category/ in URL
480
  function seopress_advanced_advanced_category_url_option() {
489
  }
490
 
491
  if (seopress_advanced_advanced_category_url_option() !='') {
492
+ //Flush permalinks when creating/editing/deleting post categories
493
+ add_action( 'created_category', 'flush_rewrite_rules' );
494
+ add_action( 'delete_category', 'flush_rewrite_rules' );
495
+ add_action( 'edited_category', 'flush_rewrite_rules' );
496
+
497
  //@credits : WordPress VIP
498
  add_filter( 'category_rewrite_rules', 'seopress_filter_category_rewrite_rules' );
499
  function seopress_filter_category_rewrite_rules( $rules ) {
500
+ if ( class_exists( 'Sitepress' ) ) {
501
  global $sitepress;
502
  remove_filter( 'terms_clauses', array( $sitepress, 'terms_clauses' ) );
503
  $categories = get_categories( array( 'hide_empty' => false ) );
561
  }
562
 
563
  $category_base = get_option( 'category_base' );
564
+
565
  if ($category_base !='') {
566
  if (preg_match('/\/'.$category_base.'\//', $current_url)) {
567
  $new_url = str_replace('/'.$category_base, '', $current_url);
570
  }
571
  } else {
572
  $category_base = 'category';
573
+
574
  if (preg_match('/\/'.$category_base.'\//', $current_url)) {
575
  $new_url = str_replace('/'.$category_base, '', $current_url);
576
  wp_redirect($new_url, 301 );
579
  }
580
  }
581
  }
582
+ }
inc/functions/sitemap/template-xml-sitemaps-author.php CHANGED
@@ -9,9 +9,6 @@ if (function_exists('seopress_sitemaps_headers')) {
9
  }
10
 
11
  //WPML
12
- function seopress_remove_wpml_home_url_filter( $home_url, $url, $path, $orig_scheme, $blog_id ) {
13
- return $url;
14
- }
15
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
16
 
17
  function seopress_xml_sitemap_author() {
9
  }
10
 
11
  //WPML
 
 
 
12
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
13
 
14
  function seopress_xml_sitemap_author() {
inc/functions/sitemap/template-xml-sitemaps-single-term.php CHANGED
@@ -9,9 +9,6 @@ if (function_exists('seopress_sitemaps_headers')) {
9
  }
10
 
11
  //WPML
12
- function seopress_remove_wpml_home_url_filter( $home_url, $url, $path, $orig_scheme, $blog_id ) {
13
- return $url;
14
- }
15
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
16
 
17
  add_filter( 'seopress_sitemaps_single_term_query', function( $args ) {
9
  }
10
 
11
  //WPML
 
 
 
12
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
13
 
14
  add_filter( 'seopress_sitemaps_single_term_query', function( $args ) {
inc/functions/sitemap/template-xml-sitemaps-single.php CHANGED
@@ -12,9 +12,6 @@ if (function_exists('seopress_sitemaps_headers')) {
12
  remove_filter( 'post_link_category', 'seopress_titles_primary_cat_hook', 10, 3 );
13
 
14
  //WPML
15
- function seopress_remove_wpml_home_url_filter( $home_url, $url, $path, $orig_scheme, $blog_id ) {
16
- return $url;
17
- }
18
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
19
 
20
  add_filter( 'seopress_sitemaps_single_query', function( $args ) {
@@ -36,17 +33,6 @@ add_action( 'the_post', function( $post ) {
36
  do_action( 'wpml_switch_language', $language );
37
  });
38
 
39
- function seopress_xml_sitemap_img_enable_option() {
40
- $seopress_xml_sitemap_img_enable_option = get_option("seopress_xml_sitemap_option_name");
41
- if ( ! empty ( $seopress_xml_sitemap_img_enable_option ) ) {
42
- foreach ($seopress_xml_sitemap_img_enable_option as $key => $seopress_xml_sitemap_img_enable_value)
43
- $options[$key] = $seopress_xml_sitemap_img_enable_value;
44
- if (isset($seopress_xml_sitemap_img_enable_option['seopress_xml_sitemap_img_enable'])) {
45
- return $seopress_xml_sitemap_img_enable_option['seopress_xml_sitemap_img_enable'];
46
- }
47
- }
48
- }
49
-
50
  function seopress_xml_sitemap_single() {
51
  if( get_query_var( 'seopress_cpt') !== '' ) {
52
  $path = get_query_var( 'seopress_cpt');
12
  remove_filter( 'post_link_category', 'seopress_titles_primary_cat_hook', 10, 3 );
13
 
14
  //WPML
 
 
 
15
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
16
 
17
  add_filter( 'seopress_sitemaps_single_query', function( $args ) {
33
  do_action( 'wpml_switch_language', $language );
34
  });
35
 
 
 
 
 
 
 
 
 
 
 
 
36
  function seopress_xml_sitemap_single() {
37
  if( get_query_var( 'seopress_cpt') !== '' ) {
38
  $path = get_query_var( 'seopress_cpt');
inc/functions/sitemap/template-xml-sitemaps-xsl.php CHANGED
@@ -9,9 +9,6 @@ if (function_exists('seopress_sitemaps_headers')) {
9
  }
10
 
11
  //WPML
12
- function seopress_remove_wpml_home_url_filter( $home_url, $url, $path, $orig_scheme, $blog_id ) {
13
- return $url;
14
- }
15
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
16
 
17
  function seopress_xml_sitemap_index_xsl() {
9
  }
10
 
11
  //WPML
 
 
 
12
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
13
 
14
  function seopress_xml_sitemap_index_xsl() {
inc/functions/sitemap/template-xml-sitemaps.php CHANGED
@@ -9,9 +9,6 @@ if (function_exists('seopress_sitemaps_headers')) {
9
  }
10
 
11
  //WPML
12
- function seopress_remove_wpml_home_url_filter( $home_url, $url, $path, $orig_scheme, $blog_id ) {
13
- return $url;
14
- }
15
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
16
 
17
  add_filter( 'seopress_sitemaps_index_cpt_query', function( $args ) {
@@ -217,6 +214,28 @@ function seopress_xml_sitemap_index() {
217
  $seopress_sitemaps .= '</sitemap>';
218
  }
219
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
220
  $seopress_sitemaps .= "\n";
221
  $seopress_sitemaps .='</sitemapindex>';
222
 
9
  }
10
 
11
  //WPML
 
 
 
12
  add_filter( 'wpml_get_home_url', 'seopress_remove_wpml_home_url_filter', 20, 5 );
13
 
14
  add_filter( 'seopress_sitemaps_index_cpt_query', function( $args ) {
214
  $seopress_sitemaps .= '</sitemap>';
215
  }
216
 
217
+ // Custom sitemap
218
+ $custom_sitemap = null;
219
+ $custom_sitemap = apply_filters('seopress_sitemaps_external_link', $custom_sitemap);
220
+ if(isset($custom_sitemap)) {
221
+ foreach($custom_sitemap as $key => $sitemap) {
222
+ $seopress_sitemaps .= "\n";
223
+ $seopress_sitemaps .= '<sitemap>';
224
+ $seopress_sitemaps .= "\n";
225
+ $seopress_sitemaps .= '<loc>';
226
+ $seopress_sitemaps .= $sitemap['sitemap_url'];
227
+ $seopress_sitemaps .= '</loc>';
228
+ if(isset($sitemap['sitemap_last_mod'])) {
229
+ $seopress_sitemaps .= "\n";
230
+ $seopress_sitemaps .= '<lastmod>';
231
+ $seopress_sitemaps .= $sitemap['sitemap_last_mod'];
232
+ $seopress_sitemaps .= '</lastmod>';
233
+ }
234
+ $seopress_sitemaps .= "\n";
235
+ $seopress_sitemaps .= '</sitemap>';
236
+ }
237
+ }
238
+
239
  $seopress_sitemaps .= "\n";
240
  $seopress_sitemaps .='</sitemapindex>';
241
 
inc/functions/variables/dynamic-variables.php CHANGED
@@ -12,6 +12,7 @@ $seopress_paged ='1';
12
  $seopress_context_paged = '';
13
  $the_author_meta ='';
14
  $sep = '';
 
15
  $seopress_excerpt ='';
16
  $seopress_content ='';
17
  $post_thumbnail_url ='';
@@ -100,6 +101,12 @@ if (get_search_query() !='') {
100
  }
101
  $get_search_query = apply_filters('seopress_get_search_query', $get_search_query);
102
 
 
 
 
 
 
 
103
  if ($seopress_excerpt !='') {
104
  $seopress_get_the_excerpt = wp_trim_words(esc_attr(stripslashes_deep(wp_filter_nohtml_kses(wp_strip_all_tags(strip_shortcodes($seopress_excerpt), true)))), $seopress_excerpt_length);
105
  } elseif ($post !='') {
@@ -112,6 +119,7 @@ if ($seopress_excerpt !='') {
112
  $seopress_get_the_excerpt = null;
113
  }
114
 
 
115
  if ($post !='') {
116
  if (get_post_field('post_content', $post->ID) !='') {
117
  $seopress_content = wp_trim_words(esc_attr(stripslashes_deep(wp_filter_nohtml_kses(wp_strip_all_tags(strip_shortcodes(get_post_field('post_content', $post->ID), true))))), $seopress_excerpt_length);
@@ -122,12 +130,13 @@ if ($post !='') {
122
  $seopress_content = null;
123
  }
124
 
 
125
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
126
  if ( is_plugin_active( 'woocommerce/woocommerce.php' )) {
127
  if (is_singular(array('product'))) {
128
  //Woo Cat product
129
  $woo_single_cats = get_the_terms( $post->ID, 'product_cat' );
130
-
131
  if ( $woo_single_cats && ! is_wp_error( $woo_single_cats ) ) {
132
 
133
  $woo_single_cat = array();
@@ -227,8 +236,8 @@ $seopress_titles_template_replace_array = array(
227
  get_bloginfo('name'),
228
  get_bloginfo('description'),
229
  get_bloginfo('description'),
230
- the_title_attribute('echo=0'),
231
- the_title_attribute('echo=0'),
232
  $seopress_get_the_excerpt,
233
  $seopress_get_the_excerpt,
234
  $seopress_content,
12
  $seopress_context_paged = '';
13
  $the_author_meta ='';
14
  $sep = '';
15
+ $seopress_get_post_title = '';
16
  $seopress_excerpt ='';
17
  $seopress_content ='';
18
  $post_thumbnail_url ='';
101
  }
102
  $get_search_query = apply_filters('seopress_get_search_query', $get_search_query);
103
 
104
+ //Post Title
105
+ if (is_singular() && isset($post)) {
106
+ $seopress_get_post_title = esc_attr( strip_tags( get_post_field( 'post_title', $post->ID ) ) );
107
+ }
108
+
109
+ //Post Excerpt
110
  if ($seopress_excerpt !='') {
111
  $seopress_get_the_excerpt = wp_trim_words(esc_attr(stripslashes_deep(wp_filter_nohtml_kses(wp_strip_all_tags(strip_shortcodes($seopress_excerpt), true)))), $seopress_excerpt_length);
112
  } elseif ($post !='') {
119
  $seopress_get_the_excerpt = null;
120
  }
121
 
122
+ //Post Content
123
  if ($post !='') {
124
  if (get_post_field('post_content', $post->ID) !='') {
125
  $seopress_content = wp_trim_words(esc_attr(stripslashes_deep(wp_filter_nohtml_kses(wp_strip_all_tags(strip_shortcodes(get_post_field('post_content', $post->ID), true))))), $seopress_excerpt_length);
130
  $seopress_content = null;
131
  }
132
 
133
+ //WooCommerce
134
  include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
135
  if ( is_plugin_active( 'woocommerce/woocommerce.php' )) {
136
  if (is_singular(array('product'))) {
137
  //Woo Cat product
138
  $woo_single_cats = get_the_terms( $post->ID, 'product_cat' );
139
+
140
  if ( $woo_single_cats && ! is_wp_error( $woo_single_cats ) ) {
141
 
142
  $woo_single_cat = array();
236
  get_bloginfo('name'),
237
  get_bloginfo('description'),
238
  get_bloginfo('description'),
239
+ $seopress_get_post_title,
240
+ $seopress_get_post_title,
241
  $seopress_get_the_excerpt,
242
  $seopress_get_the_excerpt,
243
  $seopress_content,
languages/wp-seopress.pot CHANGED
@@ -3,7 +3,7 @@ msgid ""
3
  msgstr ""
4
  "Project-Id-Version: SEOPress\n"
5
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-cloudy\n"
6
- "POT-Creation-Date: 2020-04-13 14:13+0200\n"
7
  "PO-Revision-Date: 2019-08-22 12:52+0200\n"
8
  "Last-Translator: \n"
9
  "Language-Team: Benjamin DENIS <contact@seopress.org>\n"
@@ -29,26 +29,27 @@ msgstr ""
29
  #: inc/admin/admin-features-list.php:18 inc/admin/admin-features-list.php:34
30
  #: inc/admin/admin-features-list.php:50 inc/admin/admin-features-list.php:66
31
  #: inc/admin/admin-features-list.php:82 inc/admin/admin-features-list.php:93
32
- #: inc/admin/admin-features-list.php:109 inc/admin/admin-features-list.php:118
33
- #: inc/admin/admin-features-list.php:127 inc/admin/admin-features-list.php:136
34
- #: inc/admin/admin-features-list.php:155 inc/admin/admin-features-list.php:171
35
- #: inc/admin/admin-features-list.php:192 inc/admin/admin-features-list.php:209
36
  #: inc/admin/admin-features-list.php:228 inc/admin/admin-features-list.php:247
37
- #: inc/admin/admin-features-list.php:285 inc/admin/admin-features-list.php:295
38
- #: inc/admin/admin-features-list.php:305 inc/admin/admin-features-list.php:316
39
- #: inc/admin/admin-features-list.php:327 inc/admin/admin-features-list.php:345
 
40
  msgid "Manage"
41
  msgstr ""
42
 
43
  #: inc/admin/admin-features-list.php:23 inc/admin/admin-features-list.php:39
44
  #: inc/admin/admin-features-list.php:55 inc/admin/admin-features-list.php:71
45
- #: inc/admin/admin-features-list.php:98 inc/admin/admin-features-list.php:144
46
- #: inc/admin/admin-features-list.php:160 inc/admin/admin-features-list.php:176
47
- #: inc/admin/admin-features-list.php:197 inc/admin/admin-features-list.php:214
48
  #: inc/admin/admin-features-list.php:233 inc/admin/admin-features-list.php:252
49
- #: inc/admin/admin-features-list.php:271 inc/admin/admin-features-list.php:332
50
- #: inc/admin/admin-features-list.php:350 inc/admin/admin.php:293
51
- #: inc/admin/admin.php:299
52
  msgid "Read our guide"
53
  msgstr ""
54
 
@@ -82,12 +83,12 @@ msgid "Guide to enable Google Knowledge Graph - new window"
82
  msgstr ""
83
 
84
  #: inc/admin/admin-features-list.php:63 inc/admin/admin-header.php:54
85
- #: inc/admin/adminbar.php:44
86
- msgid "Google Analytics"
87
  msgstr ""
88
 
89
  #: inc/admin/admin-features-list.php:64
90
- msgid "Track everything about your visitors with Google Analytics"
91
  msgstr ""
92
 
93
  #: inc/admin/admin-features-list.php:72
@@ -105,220 +106,229 @@ msgid "Advanced SEO options for advanced users!"
105
  msgstr ""
106
 
107
  #: inc/admin/admin-features-list.php:90 inc/admin/admin-header.php:68
108
- msgid "WooCommerce"
 
109
  msgstr ""
110
 
111
  #: inc/admin/admin-features-list.php:91
112
- msgid "Improve WooCommerce SEO"
113
  msgstr ""
114
 
115
- #: inc/admin/admin-features-list.php:99
116
  msgid "Guide to optimize your WooCommerce SEO - new window"
117
  msgstr ""
118
 
119
- #: inc/admin/admin-features-list.php:106 inc/admin/admin-header.php:74
 
 
 
 
 
 
 
 
120
  msgid "Easy Digital Downloads"
121
  msgstr ""
122
 
123
- #: inc/admin/admin-features-list.php:107
124
  msgid "Improve Easy Digital Downloads SEO"
125
  msgstr ""
126
 
127
- #: inc/admin/admin-features-list.php:115 inc/admin/admin-header.php:80
128
  msgid "Local Business"
129
  msgstr ""
130
 
131
- #: inc/admin/admin-features-list.php:116
132
  msgid "Add Google Local Business data type"
133
  msgstr ""
134
 
135
- #: inc/admin/admin-features-list.php:124 inc/admin/admin-header.php:86
136
  msgid "Dublin Core"
137
  msgstr ""
138
 
139
- #: inc/admin/admin-features-list.php:125
140
  msgid "Add Dublin Core meta tags"
141
  msgstr ""
142
 
143
- #: inc/admin/admin-features-list.php:133
144
  msgid "Structured Data Types"
145
  msgstr ""
146
 
147
- #: inc/admin/admin-features-list.php:134
148
  msgid ""
149
  "Add data types to your content: articles, courses, recipes, videos, events, "
150
  "products and more."
151
  msgstr ""
152
 
153
- #: inc/admin/admin-features-list.php:139 inc/admin/admin-features-list.php:225
154
  msgid "See schemas"
155
  msgstr ""
156
 
157
- #: inc/admin/admin-features-list.php:145 inc/admin/admin-features-list.php:234
158
  msgid "Guide to add schemas with SEOPress PRO - new window"
159
  msgstr ""
160
 
161
- #: inc/admin/admin-features-list.php:152 inc/admin/admin-header.php:98
162
  msgid "Breadcrumbs"
163
  msgstr ""
164
 
165
- #: inc/admin/admin-features-list.php:153
166
  msgid "Enable Breadcrumbs for your theme and improve your SEO in SERPs"
167
  msgstr ""
168
 
169
- #: inc/admin/admin-features-list.php:161
170
  msgid "Guide to enable Breadcrumbs - new window"
171
  msgstr ""
172
 
173
- #: inc/admin/admin-features-list.php:168 inc/admin/admin-header.php:104
174
  msgid "Google Page Speed"
175
  msgstr ""
176
 
177
- #: inc/admin/admin-features-list.php:169
178
  msgid "Track your website performance to improve SEO with Google Page Speed"
179
  msgstr ""
180
 
181
- #: inc/admin/admin-features-list.php:177
182
  msgid "Guide to analyze your site with Google Page Speed - new window"
183
  msgstr ""
184
 
185
- #: inc/admin/admin-features-list.php:186 inc/admin/admin-header.php:111
186
  msgid "robots.txt"
187
  msgstr ""
188
 
189
- #: inc/admin/admin-features-list.php:187
190
  msgid "Edit your robots.txt file"
191
  msgstr ""
192
 
193
- #: inc/admin/admin-features-list.php:189
194
  msgid "View your robots.txt"
195
  msgstr ""
196
 
197
- #: inc/admin/admin-features-list.php:198 inc/admin/admin-features-list.php:215
198
  msgid "Guide to edit your robots.txt file - new window"
199
  msgstr ""
200
 
201
- #: inc/admin/admin-features-list.php:206 inc/admin/admin-header.php:118
202
  msgid "Google News Sitemap"
203
  msgstr ""
204
 
205
- #: inc/admin/admin-features-list.php:207
206
  msgid "Optimize your site for Google News"
207
  msgstr ""
208
 
209
- #: inc/admin/admin-features-list.php:222 inc/admin/adminbar.php:85
210
  msgid "Schemas"
211
  msgstr ""
212
 
213
- #: inc/admin/admin-features-list.php:223
214
  msgid "Create / manage your schemas"
215
  msgstr ""
216
 
217
- #: inc/admin/admin-features-list.php:241 inc/admin/admin-header.php:124
218
- #: inc/admin/admin.php:675 inc/admin/adminbar.php:93
219
  msgid "Redirections"
220
  msgstr ""
221
 
222
- #: inc/admin/admin-features-list.php:242
223
  msgid "Monitor 404, create 301, 302 and 307 redirections"
224
  msgstr ""
225
 
226
- #: inc/admin/admin-features-list.php:244
227
  msgid "See redirects"
228
  msgstr ""
229
 
230
- #: inc/admin/admin-features-list.php:253
231
  msgid "Guide to enable 301 redirections and 404 monitoring - new window"
232
  msgstr ""
233
 
234
- #: inc/admin/admin-features-list.php:260 inc/admin/admin-header.php:130
235
  msgid "Broken links"
236
  msgstr ""
237
 
238
- #: inc/admin/admin-features-list.php:261
239
  msgid "Scan your site to find SEO problems."
240
  msgstr ""
241
 
242
- #: inc/admin/admin-features-list.php:263
243
  msgid "See broken links"
244
  msgstr ""
245
 
246
- #: inc/admin/admin-features-list.php:266
247
  msgid "Scan"
248
  msgstr ""
249
 
250
- #: inc/admin/admin-features-list.php:272
251
  msgid "Guide to find broken links with SEOPress PRO - new window"
252
  msgstr ""
253
 
254
- #: inc/admin/admin-features-list.php:279 inc/admin/admin-header.php:136
255
- #: inc/admin/adminbar.php:108
256
  msgid "Backlinks"
257
  msgstr ""
258
 
259
- #: inc/admin/admin-features-list.php:280
260
  msgid "Check your backlinks with Majestic API."
261
  msgstr ""
262
 
263
- #: inc/admin/admin-features-list.php:282
264
  msgid "See backlinks"
265
  msgstr ""
266
 
267
- #: inc/admin/admin-features-list.php:292 inc/admin/admin-header.php:142
268
  msgid "URL Rewriting"
269
  msgstr ""
270
 
271
- #: inc/admin/admin-features-list.php:293
272
  msgid "Customize your permalinks."
273
  msgstr ""
274
 
275
- #: inc/admin/admin-features-list.php:302 inc/admin/admin-header.php:155
276
  msgid ".htaccess"
277
  msgstr ""
278
 
279
- #: inc/admin/admin-features-list.php:303
280
  msgid "Edit your htaccess file."
281
  msgstr ""
282
 
283
- #: inc/admin/admin-features-list.php:313 inc/admin/admin-header.php:162
284
  msgid "RSS"
285
  msgstr ""
286
 
287
- #: inc/admin/admin-features-list.php:314
288
  msgid "Configure default WordPress RSS."
289
  msgstr ""
290
 
291
- #: inc/admin/admin-features-list.php:324 inc/admin/admin-header.php:175
292
- #: inc/admin/admin.php:196 inc/admin/adminbar.php:56
293
  msgid "Tools"
294
  msgstr ""
295
 
296
- #: inc/admin/admin-features-list.php:325
297
  msgid "Import/Export plugin settings from site to site."
298
  msgstr ""
299
 
300
- #: inc/admin/admin-features-list.php:333
301
  msgid "Guide to Export/Import/Reset settings - new window"
302
  msgstr ""
303
 
304
- #: inc/admin/admin-features-list.php:342 inc/admin/admin-header.php:168
305
- #: inc/admin/admin-notifications-center.php:525 inc/admin/adminbar.php:72
306
  msgid "License"
307
  msgstr ""
308
 
309
- #: inc/admin/admin-features-list.php:343
310
  msgid "Edit your license key."
311
  msgstr ""
312
 
313
- #: inc/admin/admin-features-list.php:351
314
  msgid "Guide to activate SEOPress PRO - new window"
315
  msgstr ""
316
 
317
- #: inc/admin/admin-features-list.php:406 inc/admin/admin-features-list.php:410
318
  msgid "Click to disable"
319
  msgstr ""
320
 
321
- #: inc/admin/admin-features-list.php:407 inc/admin/admin-features-list.php:409
322
  msgid "Click to enable"
323
  msgstr ""
324
 
@@ -354,8 +364,8 @@ msgstr ""
354
  msgid "SEOPress"
355
  msgstr ""
356
 
357
- #: inc/admin/admin-header.php:24 inc/admin/admin-notifications-center.php:554
358
- #: inc/admin/adminbar.php:78
359
  msgid "PRO"
360
  msgstr ""
361
 
@@ -373,55 +383,55 @@ msgstr ""
373
  msgid "XML / HTML Sitemap"
374
  msgstr ""
375
 
376
- #: inc/admin/admin-header.php:92
377
  msgid "Structured Data Types (schema.org)"
378
  msgstr ""
379
 
380
- #: inc/admin/admin-header.php:149
381
  msgid "White Label"
382
  msgstr ""
383
 
384
- #: inc/admin/admin-header.php:200
385
  msgid "See the changelog (new window)"
386
  msgstr ""
387
 
388
- #: inc/admin/admin-header.php:202
389
  msgid "See the changelog"
390
  msgstr ""
391
 
392
- #: inc/admin/admin-header.php:204 inc/admin/admin-header.php:206
393
  msgid "Send feedback"
394
  msgstr ""
395
 
396
- #: inc/admin/admin-header.php:208
397
  msgid "Follow us on Twitter (new window)"
398
  msgstr ""
399
 
400
- #: inc/admin/admin-header.php:210 inc/admin/admin-wizard.php:871
401
  msgid "Follow us on Twitter"
402
  msgstr ""
403
 
404
- #: inc/admin/admin-header.php:212
405
  msgid "Follow us on YouTube (new window)"
406
  msgstr ""
407
 
408
- #: inc/admin/admin-header.php:214
409
  msgid "Follow us on YouTube"
410
  msgstr ""
411
 
412
- #: inc/admin/admin-header.php:216
413
  msgid "Official website (new window)"
414
  msgstr ""
415
 
416
- #: inc/admin/admin-header.php:218
417
  msgid "Official website"
418
  msgstr ""
419
 
420
- #: inc/admin/admin-header.php:220
421
  msgid "Support (new window)"
422
  msgstr ""
423
 
424
- #: inc/admin/admin-header.php:222
425
  msgid "Support"
426
  msgstr ""
427
 
@@ -437,78 +447,79 @@ msgid ""
437
  msgstr ""
438
 
439
  #: inc/admin/admin-metaboxes-content-analysis-form.php:12
440
- #: inc/admin/admin-metaboxes-content-analysis-form.php:18
 
441
  #: inc/functions/options-advanced-admin.php:822
442
  msgid "Target keywords"
443
  msgstr ""
444
 
445
- #: inc/admin/admin-metaboxes-content-analysis-form.php:15
446
  msgid ""
447
  "Separate target keywords with commas. Do not use spaces after the commas, "
448
- "unless you want to include them (eg: \"my super keyword,another keyword,"
449
- "keyword\")"
450
  msgstr ""
451
 
452
- #: inc/admin/admin-metaboxes-content-analysis-form.php:18
453
  msgid "Enter your target keywords"
454
  msgstr ""
455
 
456
- #: inc/admin/admin-metaboxes-content-analysis-form.php:21
457
  msgid "Analyze my content"
458
  msgstr ""
459
 
460
- #: inc/admin/admin-metaboxes-content-analysis-form.php:23
461
  msgid "Refresh analysis"
462
  msgstr ""
463
 
464
- #: inc/admin/admin-metaboxes-content-analysis-form.php:26
465
  msgid "To get the most accurate analysis, save your post first."
466
  msgstr ""
467
 
468
- #: inc/admin/admin-metaboxes-content-analysis-form.php:31
 
469
  msgid "Google suggestions"
470
  msgstr ""
471
 
472
- #: inc/admin/admin-metaboxes-content-analysis-form.php:34
473
  msgid ""
474
  "Enter a keyword, or a phrase, to find the top 10 Google suggestions "
475
  "instantly. This is useful if you want to work with the long tail technique."
476
  msgstr ""
477
 
478
- #: inc/admin/admin-metaboxes-content-analysis-form.php:39
479
  msgid "Get suggestions!"
480
  msgstr ""
481
 
482
- #: inc/admin/admin-metaboxes-content-analysis-form.php:94
483
  msgid "Structured data types"
484
  msgstr ""
485
 
486
- #: inc/admin/admin-metaboxes-content-analysis-form.php:99
487
  msgid "Last modified date"
488
  msgstr ""
489
 
490
- #: inc/admin/admin-metaboxes-content-analysis-form.php:104
491
  msgid "Words counter"
492
  msgstr ""
493
 
494
- #: inc/admin/admin-metaboxes-content-analysis-form.php:109
495
  msgid "Keywords density"
496
  msgstr ""
497
 
498
- #: inc/admin/admin-metaboxes-content-analysis-form.php:114
499
  msgid "Keywords in permalink"
500
  msgstr ""
501
 
502
- #: inc/admin/admin-metaboxes-content-analysis-form.php:119
503
  msgid "Headings"
504
  msgstr ""
505
 
506
- #: inc/admin/admin-metaboxes-content-analysis-form.php:124
507
  #: inc/admin/admin-metaboxes-form.php:106
508
  msgid "Meta title"
509
  msgstr ""
510
 
511
- #: inc/admin/admin-metaboxes-content-analysis-form.php:129
512
  #: inc/admin/admin-metaboxes-form.php:130
513
  #: inc/admin/admin-metaboxes-form.php:131
514
  #: inc/admin/admin-metaboxes-form.php:133 inc/admin/admin-wizard.php:294
@@ -522,480 +533,480 @@ msgstr ""
522
  msgid "Meta description"
523
  msgstr ""
524
 
525
- #: inc/admin/admin-metaboxes-content-analysis-form.php:134
526
  msgid "Social meta tags"
527
  msgstr ""
528
 
529
- #: inc/admin/admin-metaboxes-content-analysis-form.php:139
530
  msgid "Meta robots"
531
  msgstr ""
532
 
533
- #: inc/admin/admin-metaboxes-content-analysis-form.php:144
534
  msgid "Alternative texts of images"
535
  msgstr ""
536
 
537
- #: inc/admin/admin-metaboxes-content-analysis-form.php:149
538
  msgid "NoFollow Links"
539
  msgstr ""
540
 
541
- #: inc/admin/admin-metaboxes-content-analysis-form.php:154
542
  msgid "Outbound Links"
543
  msgstr ""
544
 
545
- #: inc/admin/admin-metaboxes-content-analysis-form.php:162
546
  msgid "We found these schemas in the source code of this page:"
547
  msgstr ""
548
 
549
- #: inc/admin/admin-metaboxes-content-analysis-form.php:169
550
  msgid "duplicated schema - x"
551
  msgstr ""
552
 
553
- #: inc/admin/admin-metaboxes-content-analysis-form.php:178
554
  msgid "No schemas found in the source code of this page."
555
  msgstr ""
556
 
557
- #: inc/admin/admin-metaboxes-content-analysis-form.php:185
558
  msgid "This post is a little old!"
559
  msgstr ""
560
 
561
- #: inc/admin/admin-metaboxes-content-analysis-form.php:187
562
  msgid "The last modified date of this article is less than 1 year. Cool!"
563
  msgstr ""
564
 
565
- #: inc/admin/admin-metaboxes-content-analysis-form.php:189
566
  msgid ""
567
  "Search engines love fresh content. Regularly update your articles without "
568
  "having to rewrite your content entirely and give them a boost in search "
569
  "rankings. SEOPress takes care of the technical part."
570
  msgstr ""
571
 
572
- #: inc/admin/admin-metaboxes-content-analysis-form.php:195
573
  msgid ""
574
  "Words counter is not a direct ranking factor. But, your content must be as "
575
  "qualitative as possible, with relevant and unique information. To fulfill "
576
  "these conditions, your article requires a minimum of paragraphs, so words."
577
  msgstr ""
578
 
579
- #: inc/admin/admin-metaboxes-content-analysis-form.php:197
580
  msgid "words found."
581
  msgstr ""
582
 
583
- #: inc/admin/admin-metaboxes-content-analysis-form.php:198
584
  msgid "unique words found."
585
  msgstr ""
586
 
587
- #: inc/admin/admin-metaboxes-content-analysis-form.php:201
588
  msgid ""
589
  "Your content is composed of more than 300 words, which is the minimum for a "
590
  "post."
591
  msgstr ""
592
 
593
- #: inc/admin/admin-metaboxes-content-analysis-form.php:203
594
  msgid "Your content is too short. Add a few more paragraphs!"
595
  msgstr ""
596
 
597
- #: inc/admin/admin-metaboxes-content-analysis-form.php:210
598
  msgid "No content? Add a few more paragraphs!"
599
  msgstr ""
600
 
601
- #: inc/admin/admin-metaboxes-content-analysis-form.php:225
602
  #, php-format
603
  msgid "%s was found %d times in your content, a keyword density of %s%%"
604
  msgstr ""
605
 
606
- #: inc/admin/admin-metaboxes-content-analysis-form.php:228
607
  msgid ""
608
  "Learn more about <a href=\"https://www.youtube.com/watch?v=Rk4qgQdp2UA\" "
609
  "target=\"_blank\">keywords stuffing</a>."
610
  msgstr ""
611
 
612
- #: inc/admin/admin-metaboxes-content-analysis-form.php:232
613
  msgid ""
614
  "We were unable to calculate the density of your keywords. You probably "
615
  "haven‘t added any content or your target keywords were not find in your post "
616
  "content."
617
  msgstr ""
618
 
619
- #: inc/admin/admin-metaboxes-content-analysis-form.php:238
620
  msgid "Cool, one of your target keyword is used in your permalink."
621
  msgstr ""
622
 
623
- #: inc/admin/admin-metaboxes-content-analysis-form.php:250
624
  msgid "You should add one of your target keyword in your permalink."
625
  msgstr ""
626
 
627
- #: inc/admin/admin-metaboxes-content-analysis-form.php:258
628
  msgid "H1 (Heading 1)"
629
  msgstr ""
630
 
631
- #: inc/admin/admin-metaboxes-content-analysis-form.php:266
632
  msgid "Target keywords were found in Heading 1 (H1)."
633
  msgstr ""
634
 
635
- #: inc/admin/admin-metaboxes-content-analysis-form.php:275
636
- #: inc/admin/admin-metaboxes-content-analysis-form.php:305
637
- #: inc/admin/admin-metaboxes-content-analysis-form.php:326
638
- #: inc/admin/admin-metaboxes-content-analysis-form.php:349
639
- #: inc/admin/admin-metaboxes-content-analysis-form.php:383
640
  #, php-format
641
  msgid "%s was found %d times."
642
  msgstr ""
643
 
644
- #: inc/admin/admin-metaboxes-content-analysis-form.php:280
645
  #, php-format
646
  msgid "We found %d Heading 1 (H1) in your content."
647
  msgstr ""
648
 
649
- #: inc/admin/admin-metaboxes-content-analysis-form.php:281
650
  msgid ""
651
  "You should not use more than one H1 heading in your post content. The rule "
652
  "is simple: only one H1 for each web page. It is better for both SEO and "
653
  "accessibility. Below, the list:"
654
  msgstr ""
655
 
656
- #: inc/admin/admin-metaboxes-content-analysis-form.php:295
657
  msgid "H2 (Heading 2)"
658
  msgstr ""
659
 
660
- #: inc/admin/admin-metaboxes-content-analysis-form.php:297
661
  msgid "Target keywords were found in Heading 2 (H2)."
662
  msgstr ""
663
 
664
- #: inc/admin/admin-metaboxes-content-analysis-form.php:309
665
  msgid "None of your target keywords were found in Heading 2 (H2)."
666
  msgstr ""
667
 
668
- #: inc/admin/admin-metaboxes-content-analysis-form.php:316
669
  msgid "H3 (Heading 3)"
670
  msgstr ""
671
 
672
- #: inc/admin/admin-metaboxes-content-analysis-form.php:318
673
  msgid "Target keywords were found in Heading 3 (H3)."
674
  msgstr ""
675
 
676
- #: inc/admin/admin-metaboxes-content-analysis-form.php:330
677
  msgid "None of your target keywords were found in Heading 3 (H3)."
678
  msgstr ""
679
 
680
- #: inc/admin/admin-metaboxes-content-analysis-form.php:341
681
  msgid "Target keywords were found in the Meta Title."
682
  msgstr ""
683
 
684
- #: inc/admin/admin-metaboxes-content-analysis-form.php:355
685
  msgid "None of your target keywords were found in the Meta Title."
686
  msgstr ""
687
 
688
- #: inc/admin/admin-metaboxes-content-analysis-form.php:360
689
  msgid "Your custom title is too long."
690
  msgstr ""
691
 
692
- #: inc/admin/admin-metaboxes-content-analysis-form.php:363
693
  msgid "The length of your title is correct"
694
  msgstr ""
695
 
696
- #: inc/admin/admin-metaboxes-content-analysis-form.php:368
697
  msgid ""
698
  "No custom title is set for this post. If the global meta title suits you, "
699
  "you can ignore this recommendation."
700
  msgstr ""
701
 
702
- #: inc/admin/admin-metaboxes-content-analysis-form.php:375
703
  msgid "Target keywords were found in the Meta description."
704
  msgstr ""
705
 
706
- #: inc/admin/admin-metaboxes-content-analysis-form.php:389
707
  msgid "None of your target keywords were found in the Meta description."
708
  msgstr ""
709
 
710
- #: inc/admin/admin-metaboxes-content-analysis-form.php:394
711
  msgid "You custom meta description is too long."
712
  msgstr ""
713
 
714
- #: inc/admin/admin-metaboxes-content-analysis-form.php:397
715
  msgid "The length of your meta description is correct"
716
  msgstr ""
717
 
718
- #: inc/admin/admin-metaboxes-content-analysis-form.php:402
719
  msgid ""
720
  "No custom meta description is set for this post. If the global meta "
721
  "description suits you, you can ignore this recommendation."
722
  msgstr ""
723
 
724
- #: inc/admin/admin-metaboxes-content-analysis-form.php:409
725
  msgid "Open Graph Title"
726
  msgstr ""
727
 
728
- #: inc/admin/admin-metaboxes-content-analysis-form.php:418
729
  #, php-format
730
  msgid "We found %d og:title in your content."
731
  msgstr ""
732
 
733
- #: inc/admin/admin-metaboxes-content-analysis-form.php:419
734
  msgid ""
735
  "You should not use more than one og:title in your post content to avoid "
736
  "conflicts when sharing on social networks. Facebook will take the last og:"
737
  "title tag from your source code. Below, the list:"
738
  msgstr ""
739
 
740
- #: inc/admin/admin-metaboxes-content-analysis-form.php:421
741
  msgid "We found an Open Graph Title tag in your source code."
742
  msgstr ""
743
 
744
- #: inc/admin/admin-metaboxes-content-analysis-form.php:433
745
  msgid "Your Open Graph Title is missing!"
746
  msgstr ""
747
 
748
- #: inc/admin/admin-metaboxes-content-analysis-form.php:437
749
  msgid "Open Graph Description"
750
  msgstr ""
751
 
752
- #: inc/admin/admin-metaboxes-content-analysis-form.php:447
753
  #, php-format
754
  msgid "We found %d og:description in your content."
755
  msgstr ""
756
 
757
- #: inc/admin/admin-metaboxes-content-analysis-form.php:448
758
  msgid ""
759
  "You should not use more than one og:description in your post content to "
760
  "avoid conflicts when sharing on social networks. Facebook will take the last "
761
  "og:description tag from your source code. Below, the list:"
762
  msgstr ""
763
 
764
- #: inc/admin/admin-metaboxes-content-analysis-form.php:450
765
  msgid "We found an Open Graph Description tag in your source code."
766
  msgstr ""
767
 
768
- #: inc/admin/admin-metaboxes-content-analysis-form.php:462
769
  msgid "Your Open Graph Description is missing!"
770
  msgstr ""
771
 
772
- #: inc/admin/admin-metaboxes-content-analysis-form.php:466
773
  msgid "Open Graph Image"
774
  msgstr ""
775
 
776
- #: inc/admin/admin-metaboxes-content-analysis-form.php:475
777
  #, php-format
778
  msgid "We found %d og:image in your content."
779
  msgstr ""
780
 
781
- #: inc/admin/admin-metaboxes-content-analysis-form.php:487
782
  msgid "Your Open Graph Image is missing!"
783
  msgstr ""
784
 
785
- #: inc/admin/admin-metaboxes-content-analysis-form.php:491
786
  msgid "Open Graph URL"
787
  msgstr ""
788
 
789
- #: inc/admin/admin-metaboxes-content-analysis-form.php:501
790
  #, php-format
791
  msgid "We found %d og:url in your content."
792
  msgstr ""
793
 
794
- #: inc/admin/admin-metaboxes-content-analysis-form.php:502
795
  msgid ""
796
  "You should not use more than one og:url in your post content to avoid "
797
  "conflicts when sharing on social networks. Facebook will take the last og:"
798
  "url tag from your source code. Below, the list:"
799
  msgstr ""
800
 
801
- #: inc/admin/admin-metaboxes-content-analysis-form.php:504
802
  msgid "We found an Open Graph URL tag in your source code."
803
  msgstr ""
804
 
805
- #: inc/admin/admin-metaboxes-content-analysis-form.php:516
806
  msgid "Your Open Graph URL is missing!"
807
  msgstr ""
808
 
809
- #: inc/admin/admin-metaboxes-content-analysis-form.php:520
810
  msgid "Open Graph Site Name"
811
  msgstr ""
812
 
813
- #: inc/admin/admin-metaboxes-content-analysis-form.php:530
814
  #, php-format
815
  msgid "We found %d og:site_name in your content."
816
  msgstr ""
817
 
818
- #: inc/admin/admin-metaboxes-content-analysis-form.php:531
819
  msgid ""
820
  "You should not use more than one og:site_name in your post content to avoid "
821
  "conflicts when sharing on social networks. Facebook will take the last og:"
822
  "site_name tag from your source code. Below, the list:"
823
  msgstr ""
824
 
825
- #: inc/admin/admin-metaboxes-content-analysis-form.php:533
826
  msgid "We found an Open Graph Site Name tag in your source code."
827
  msgstr ""
828
 
829
- #: inc/admin/admin-metaboxes-content-analysis-form.php:545
830
  msgid "Your Open Graph Site Name is missing!"
831
  msgstr ""
832
 
833
- #: inc/admin/admin-metaboxes-content-analysis-form.php:549
834
  #: inc/admin/admin-metaboxes-form.php:374
835
  #: inc/admin/admin-metaboxes-form.php:375
836
  msgid "Twitter Title"
837
  msgstr ""
838
 
839
- #: inc/admin/admin-metaboxes-content-analysis-form.php:559
840
  #, php-format
841
  msgid "We found %d twitter:title in your content."
842
  msgstr ""
843
 
844
- #: inc/admin/admin-metaboxes-content-analysis-form.php:560
845
  msgid ""
846
  "You should not use more than one twitter:title in your post content to avoid "
847
  "conflicts when sharing on social networks. Twitter will take the last "
848
  "twitter:title tag from your source code. Below, the list:"
849
  msgstr ""
850
 
851
- #: inc/admin/admin-metaboxes-content-analysis-form.php:562
852
  msgid "We found a Twitter Title Tag in your source code."
853
  msgstr ""
854
 
855
- #: inc/admin/admin-metaboxes-content-analysis-form.php:574
856
  msgid "Your Twitter Title is missing!"
857
  msgstr ""
858
 
859
- #: inc/admin/admin-metaboxes-content-analysis-form.php:578
860
  msgid "Twitter Description"
861
  msgstr ""
862
 
863
- #: inc/admin/admin-metaboxes-content-analysis-form.php:588
864
  #, php-format
865
  msgid "We found %d twitter:description in your content."
866
  msgstr ""
867
 
868
- #: inc/admin/admin-metaboxes-content-analysis-form.php:589
869
  msgid ""
870
  "You should not use more than one twitter:description in your post content to "
871
  "avoid conflicts when sharing on social networks. Twitter will take the last "
872
  "twitter:description tag from your source code. Below, the list:"
873
  msgstr ""
874
 
875
- #: inc/admin/admin-metaboxes-content-analysis-form.php:591
876
  msgid "We found a Twitter Description tag in your source code."
877
  msgstr ""
878
 
879
- #: inc/admin/admin-metaboxes-content-analysis-form.php:603
880
  msgid "Your Twitter Description is missing!"
881
  msgstr ""
882
 
883
- #: inc/admin/admin-metaboxes-content-analysis-form.php:607
884
  msgid "Twitter Image"
885
  msgstr ""
886
 
887
- #: inc/admin/admin-metaboxes-content-analysis-form.php:616
888
  #, php-format
889
  msgid "We found %d twitter:image in your content."
890
  msgstr ""
891
 
892
- #: inc/admin/admin-metaboxes-content-analysis-form.php:628
893
  msgid "Your Twitter Image is missing!"
894
  msgstr ""
895
 
896
- #: inc/admin/admin-metaboxes-content-analysis-form.php:643
897
  #, php-format
898
  msgid ""
899
  "We found %s meta robots in your page. There is probably something wrong with "
900
  "your theme!"
901
  msgstr ""
902
 
903
- #: inc/admin/admin-metaboxes-content-analysis-form.php:648
904
  msgid "noindex is on! Search engines can't index this page."
905
  msgstr ""
906
 
907
- #: inc/admin/admin-metaboxes-content-analysis-form.php:650
908
  msgid "noindex is off. Search engines will index this page."
909
  msgstr ""
910
 
911
- #: inc/admin/admin-metaboxes-content-analysis-form.php:655
912
  msgid "nofollow is on! Search engines can't follow your links on this page."
913
  msgstr ""
914
 
915
- #: inc/admin/admin-metaboxes-content-analysis-form.php:657
916
  msgid "nofollow is off. Search engines will follow links on this page."
917
  msgstr ""
918
 
919
- #: inc/admin/admin-metaboxes-content-analysis-form.php:664
920
  msgid "noarchive is on! Search engines will not cache your page."
921
  msgstr ""
922
 
923
- #: inc/admin/admin-metaboxes-content-analysis-form.php:666
924
  msgid "noarchive is off. Search engines will probably cache your page."
925
  msgstr ""
926
 
927
- #: inc/admin/admin-metaboxes-content-analysis-form.php:673
928
  msgid ""
929
  "nosnippet is on! Search engines will not display a snippet of this page in "
930
  "search results."
931
  msgstr ""
932
 
933
- #: inc/admin/admin-metaboxes-content-analysis-form.php:675
934
  msgid ""
935
  "nosnippet is off. Search engines will display a snippet of this page in "
936
  "search results."
937
  msgstr ""
938
 
939
- #: inc/admin/admin-metaboxes-content-analysis-form.php:678
940
  msgid ""
941
  "We found no meta robots on this page. It means, your page is index,follow. "
942
  "Search engines will index it, and follow links. "
943
  msgstr ""
944
 
945
- #: inc/admin/admin-metaboxes-content-analysis-form.php:687
946
  msgid ""
947
  "noimageindex is on! Google will not index your images on this page (but if "
948
  "someone makes a direct link to one of your image in this page, it will be "
949
  "indexed)."
950
  msgstr ""
951
 
952
- #: inc/admin/admin-metaboxes-content-analysis-form.php:689
953
- #: inc/admin/admin-metaboxes-content-analysis-form.php:701
954
  msgid "noimageindex is off. Google will index the images on this page."
955
  msgstr ""
956
 
957
- #: inc/admin/admin-metaboxes-content-analysis-form.php:696
958
  msgid ""
959
  "nositelinkssearchbox is on! Google will not display a sitelinks searchbox in "
960
  "search results."
961
  msgstr ""
962
 
963
- #: inc/admin/admin-metaboxes-content-analysis-form.php:698
964
- #: inc/admin/admin-metaboxes-content-analysis-form.php:703
965
  msgid ""
966
  "nositelinkssearchbox is off. Google will probably display a sitelinks "
967
  "searchbox in search results."
968
  msgstr ""
969
 
970
- #: inc/admin/admin-metaboxes-content-analysis-form.php:716
971
  msgid ""
972
  "No alternative text found for these images. Alt tags are important for both "
973
  "SEO and accessibility. Edit your images using the media library or your "
974
  "favorite page builder and fill in alternative text fields."
975
  msgstr ""
976
 
977
- #: inc/admin/admin-metaboxes-content-analysis-form.php:727
978
  msgid "All alternative tags are filled in. Good work!"
979
  msgstr ""
980
 
981
- #: inc/admin/admin-metaboxes-content-analysis-form.php:734
982
  msgid ""
983
  "We could not find any image in your content. Content with media is a plus "
984
  "for your SEO."
985
  msgstr ""
986
 
987
- #: inc/admin/admin-metaboxes-content-analysis-form.php:741
988
  #, php-format
989
  msgid ""
990
  "We found %d links with nofollow attribute in your page. Do not overuse "
991
  "nofollow attribute in links. Below, the list:"
992
  msgstr ""
993
 
994
- #: inc/admin/admin-metaboxes-content-analysis-form.php:752
995
  msgid "This page doesn't have any nofollow links."
996
  msgstr ""
997
 
998
- #: inc/admin/admin-metaboxes-content-analysis-form.php:756
999
  msgid ""
1000
  "Internet is built on the principle of hyperlink. It is therefore perfectly "
1001
  "normal to make links between different websites. However, avoid making links "
@@ -1003,36 +1014,36 @@ msgid ""
1003
  "site, add the attribute \"nofollow\" to your link."
1004
  msgstr ""
1005
 
1006
- #: inc/admin/admin-metaboxes-content-analysis-form.php:760
1007
  #, php-format
1008
  msgid "We found %s outbound links in your page. Below, the list:"
1009
  msgstr ""
1010
 
1011
- #: inc/admin/admin-metaboxes-content-analysis-form.php:770
1012
  msgid "This page doesn't have any outbound links."
1013
  msgstr ""
1014
 
1015
- #: inc/admin/admin-metaboxes-content-analysis-form.php:784
1016
  msgid ""
1017
  "<strong>Should be improved:</strong> red or orange dots <br> <strong>Good:</"
1018
  "strong> yellow or green dots"
1019
  msgstr ""
1020
 
1021
- #: inc/admin/admin-metaboxes-content-analysis-form.php:787
1022
  #: inc/functions/options-advanced-admin.php:421
1023
  msgid "Should be improved"
1024
  msgstr ""
1025
 
1026
- #: inc/admin/admin-metaboxes-content-analysis-form.php:790
1027
  #: inc/functions/options-advanced-admin.php:416
1028
  msgid "Good"
1029
  msgstr ""
1030
 
1031
- #: inc/admin/admin-metaboxes-content-analysis-form.php:796
1032
  msgid "Expand"
1033
  msgstr ""
1034
 
1035
- #: inc/admin/admin-metaboxes-content-analysis-form.php:796
1036
  msgid "Close"
1037
  msgstr ""
1038
 
@@ -1742,104 +1753,116 @@ msgid "The best way to quickly setup SEOPress on your site."
1742
  msgstr ""
1743
 
1744
  #: inc/admin/admin-notifications-center.php:100
 
1745
  msgid "Wizard"
1746
  msgstr ""
1747
 
1748
  #: inc/admin/admin-notifications-center.php:104
 
1749
  msgid "Start the wizard"
1750
  msgstr ""
1751
 
1752
  #: inc/admin/admin-notifications-center.php:126
1753
- msgid "Your theme doesn't use <strong>add_theme_support('title-tag');</strong>"
 
1754
  msgstr ""
1755
 
1756
  #: inc/admin/admin-notifications-center.php:127
1757
  msgid ""
 
 
 
 
 
 
 
 
 
1758
  "This error indicates that your theme uses a deprecated function to generate "
1759
  "the title tag of your pages. SEOPress will not be able to generate your "
1760
  "custom title tags if this error is not fixed."
1761
  msgstr ""
1762
 
1763
- #: inc/admin/admin-notifications-center.php:129
1764
- #: inc/admin/admin-notifications-center.php:161
1765
- #: inc/admin/admin-notifications-center.php:222
1766
  #: inc/admin/admin-notifications-center.php:252
1767
- #: inc/admin/admin-notifications-center.php:270
1768
- #: inc/admin/admin-notifications-center.php:287
1769
- #: inc/admin/admin-notifications-center.php:375
1770
- #: inc/admin/admin-notifications-center.php:451
1771
- #: inc/admin/admin-notifications-center.php:488
1772
- #: inc/admin/admin-notifications-center.php:506
 
1773
  msgid "High impact"
1774
  msgstr ""
1775
 
1776
- #: inc/admin/admin-notifications-center.php:134
1777
- #: inc/admin/admin-notifications-center.php:201
1778
- #: inc/admin/admin-notifications-center.php:227 inc/admin/admin.php:4821
1779
  #: inc/admin/admin.php:4863 inc/admin/admin.php:4890 inc/admin/admin.php:4912
1780
  #: inc/admin/admin.php:4934 inc/admin/admin.php:4956
1781
  msgid "Learn more"
1782
  msgstr ""
1783
 
1784
- #: inc/admin/admin-notifications-center.php:158
1785
  #, php-format
1786
  msgid "We noticed that you use <strong>%s</strong> plugin."
1787
  msgstr ""
1788
 
1789
- #: inc/admin/admin-notifications-center.php:159
1790
  msgid ""
1791
  "Do you want to migrate all your metadata to SEOPress? Do not use multiple "
1792
  "SEO plugins at once to avoid conflicts!"
1793
  msgstr ""
1794
 
1795
- #: inc/admin/admin-notifications-center.php:165
1796
  msgid "Migrate!"
1797
  msgstr ""
1798
 
1799
- #: inc/admin/admin-notifications-center.php:178
1800
  msgid "You have enabled 404 cleaning BUT the scheduled task is not running."
1801
  msgstr ""
1802
 
1803
- #: inc/admin/admin-notifications-center.php:179
1804
  msgid ""
1805
  "To solve this, please disable and re-enable SEOPress PRO. No data will be "
1806
  "lost."
1807
  msgstr ""
1808
 
1809
- #: inc/admin/admin-notifications-center.php:200
1810
  msgid "Your site doesn't use an SSL certificate!"
1811
  msgstr ""
1812
 
1813
- #: inc/admin/admin-notifications-center.php:201
1814
  msgid ""
1815
  "Https is considered by Google as a positive signal for the ranking of your "
1816
  "site. It also reassures your visitors for data security, and improves trust."
1817
  msgstr ""
1818
 
1819
- #: inc/admin/admin-notifications-center.php:203
1820
  msgid "Low impact"
1821
  msgstr ""
1822
 
1823
- #: inc/admin/admin-notifications-center.php:207
1824
  msgid "Buy an SSL!"
1825
  msgstr ""
1826
 
1827
- #: inc/admin/admin-notifications-center.php:219
1828
  msgid "PHP module \"DOM\" is missing on your server."
1829
  msgstr ""
1830
 
1831
- #: inc/admin/admin-notifications-center.php:220
1832
  msgid ""
1833
  "This PHP module, installed by default with PHP, is required by many plugins "
1834
  "including SEOPress. Please contact your host as soon as possible to solve "
1835
  "this."
1836
  msgstr ""
1837
 
1838
- #: inc/admin/admin-notifications-center.php:249
1839
  msgid "Your site is not visible to Search Engines!"
1840
  msgstr ""
1841
 
1842
- #: inc/admin/admin-notifications-center.php:250
1843
  msgid ""
1844
  "You have activated the blocking of the indexing of your site. If your site "
1845
  "is under development, this is probably normal. Otherwise, check your "
@@ -1847,35 +1870,35 @@ msgid ""
1847
  "not concerned."
1848
  msgstr ""
1849
 
1850
- #: inc/admin/admin-notifications-center.php:256
1851
- #: inc/admin/admin-notifications-center.php:274
1852
- #: inc/admin/admin-notifications-center.php:291
1853
- #: inc/admin/admin-notifications-center.php:320
1854
- #: inc/admin/admin-notifications-center.php:409
1855
- #: inc/admin/admin-notifications-center.php:427
1856
- #: inc/admin/admin-notifications-center.php:510
1857
- #: inc/admin/admin-notifications-center.php:529
1858
  msgid "Fix this!"
1859
  msgstr ""
1860
 
1861
- #: inc/admin/admin-notifications-center.php:267
1862
  msgid "Your site title is empty!"
1863
  msgstr ""
1864
 
1865
- #: inc/admin/admin-notifications-center.php:268
1866
  msgid ""
1867
  "Your Site Title is used by WordPress, your theme and your plugins including "
1868
  "SEOPress. It is an essential component in the generation of title tags, but "
1869
  "not only. Enter one!"
1870
  msgstr ""
1871
 
1872
- #: inc/admin/admin-notifications-center.php:284 inc/admin/admin.php:2764
1873
  msgid ""
1874
  "Your permalinks are not SEO Friendly! Enable pretty permalinks to fix this."
1875
  msgstr ""
1876
 
1877
- #: inc/admin/admin-notifications-center.php:285
1878
- #: inc/admin/admin-notifications-center.php:314
1879
  msgid ""
1880
  "Why is this important? Showing only the summary of each article "
1881
  "significantly reduces the theft of your content by third party sites. Not to "
@@ -1883,40 +1906,40 @@ msgid ""
1883
  "conversions..."
1884
  msgstr ""
1885
 
1886
- #: inc/admin/admin-notifications-center.php:313
1887
  msgid "Your RSS feed shows full text!"
1888
  msgstr ""
1889
 
1890
- #: inc/admin/admin-notifications-center.php:316
1891
- #: inc/admin/admin-notifications-center.php:405
1892
- #: inc/admin/admin-notifications-center.php:423
1893
  msgid "Medium impact"
1894
  msgstr ""
1895
 
1896
- #: inc/admin/admin-notifications-center.php:343
1897
  msgid "You like SEOPress? Please help us by rating us 5 stars!"
1898
  msgstr ""
1899
 
1900
- #: inc/admin/admin-notifications-center.php:344
1901
  msgid ""
1902
  "Support the development and improvement of the plugin by taking 15 seconds "
1903
  "of your time to leave us a user review on the official WordPress plugins "
1904
  "repository. Thank you!"
1905
  msgstr ""
1906
 
1907
- #: inc/admin/admin-notifications-center.php:346
1908
  msgid "Information"
1909
  msgstr ""
1910
 
1911
- #: inc/admin/admin-notifications-center.php:350
1912
  msgid "Rate us!"
1913
  msgstr ""
1914
 
1915
- #: inc/admin/admin-notifications-center.php:372
1916
  msgid "Break comments into pages is ON!"
1917
  msgstr ""
1918
 
1919
- #: inc/admin/admin-notifications-center.php:373
1920
  msgid ""
1921
  "Enabling this option will create duplicate content for each article beyond x "
1922
  "comments. This can have a disastrous effect by creating a large number of "
@@ -1924,90 +1947,89 @@ msgid ""
1924
  "ranking in search results."
1925
  msgstr ""
1926
 
1927
- #: inc/admin/admin-notifications-center.php:379
1928
  msgid "Disable this!"
1929
  msgstr ""
1930
 
1931
- #: inc/admin/admin-notifications-center.php:402
1932
  msgid "Display more posts per page on homepage and archives"
1933
  msgstr ""
1934
 
1935
- #: inc/admin/admin-notifications-center.php:403
1936
  msgid ""
1937
  "To reduce the number pages search engines have to crawl to find all your "
1938
  "articles, it is recommended displaying more posts per page. This should not "
1939
  "be a problem for your users. Using mobile, we prefer to scroll down rather "
1940
- "than clicking on next page links. If you can do it, try adding an infinite "
1941
- "scroll to your post listings."
1942
  msgstr ""
1943
 
1944
- #: inc/admin/admin-notifications-center.php:420
1945
  msgid "You don't have an XML Sitemap!"
1946
  msgstr ""
1947
 
1948
- #: inc/admin/admin-notifications-center.php:421
1949
  msgid ""
1950
  "XML Sitemaps are useful to facilitate the crawling of your content by search "
1951
  "engine robots. Indirectly, this can benefit your ranking by reducing the "
1952
  "crawl bugdet."
1953
  msgstr ""
1954
 
1955
- #: inc/admin/admin-notifications-center.php:448
1956
  msgid "Do you have a Google My Business page? It's free!"
1957
  msgstr ""
1958
 
1959
- #: inc/admin/admin-notifications-center.php:449
1960
  msgid ""
1961
  "Local Business websites should have a My Business page to improve visibility "
1962
  "in search results. Click on the cross on the right to delete this "
1963
  "notification if you are not concerned."
1964
  msgstr ""
1965
 
1966
- #: inc/admin/admin-notifications-center.php:455
1967
  msgid "Create your page now!"
1968
  msgstr ""
1969
 
1970
- #: inc/admin/admin-notifications-center.php:485
1971
  msgid "Add your site to Google. It's free!"
1972
  msgstr ""
1973
 
1974
- #: inc/admin/admin-notifications-center.php:486
1975
  msgid ""
1976
  "Is your brand new site online? So reference it as quickly as possible on "
1977
  "Google to get your first visitors via Google Search Console. Already the "
1978
  "case? Click on the cross on the right to remove this alert."
1979
  msgstr ""
1980
 
1981
- #: inc/admin/admin-notifications-center.php:492
1982
  msgid "Add your site to Search Console!"
1983
  msgstr ""
1984
 
1985
- #: inc/admin/admin-notifications-center.php:503
1986
  msgid "Structured data types is not correctly enabled"
1987
  msgstr ""
1988
 
1989
- #: inc/admin/admin-notifications-center.php:504
1990
  msgid ""
1991
  "Please enable <strong>Structured Data Types metabox for your posts, pages "
1992
  "and custom post types</strong> option in order to use automatic and manual "
1993
  "schemas. (SEO > PRO > Structured Data Types (schema.org)"
1994
  msgstr ""
1995
 
1996
- #: inc/admin/admin-notifications-center.php:522
1997
  msgid "You have to enter your licence key to get updates and support"
1998
  msgstr ""
1999
 
2000
- #: inc/admin/admin-notifications-center.php:523
2001
  msgid ""
2002
  "Please activate the SEOPress PRO license key to automatically receive "
2003
  "updates to guarantee you the best user experience possible."
2004
  msgstr ""
2005
 
2006
- #: inc/admin/admin-notifications-center.php:551
2007
  msgid "Take your SEO to the next level with SEOPress PRO!"
2008
  msgstr ""
2009
 
2010
- #: inc/admin/admin-notifications-center.php:552
2011
  msgid ""
2012
  "The PRO version of SEOPress allows you to easily manage your structured data "
2013
  "(schemas), add a breadcrumb optimized for SEO and accessibility, improve SEO "
@@ -2015,65 +2037,65 @@ msgid ""
2015
  "of your metadata and so much more."
2016
  msgstr ""
2017
 
2018
- #: inc/admin/admin-notifications-center.php:559
2019
  msgid "Upgrade now!"
2020
  msgstr ""
2021
 
2022
- #: inc/admin/admin-notifications-center.php:576
2023
  msgid "Check websites setup on your server"
2024
  msgstr ""
2025
 
2026
- #: inc/admin/admin-notifications-center.php:585
2027
  msgid "Not found"
2028
  msgstr ""
2029
 
2030
- #: inc/admin/admin-notifications-center.php:590
2031
  msgid "No scrape."
2032
  msgstr ""
2033
 
2034
- #: inc/admin/admin-notifications-center.php:595
2035
  msgid "No domain found."
2036
  msgstr ""
2037
 
2038
- #: inc/admin/admin-notifications-center.php:605
2039
  msgid "Server IP Address: "
2040
  msgstr ""
2041
 
2042
- #: inc/admin/admin-notifications-center.php:608
2043
  msgid "Last scrape: "
2044
  msgstr ""
2045
 
2046
- #: inc/admin/admin-notifications-center.php:609
2047
  msgid "Number of websites on your server: "
2048
  msgstr ""
2049
 
2050
- #: inc/admin/admin-notifications-center.php:622
2051
  msgid "Get list"
2052
  msgstr ""
2053
 
2054
- #: inc/admin/admin-notifications-center.php:631
2055
  msgid "Our blog: SEO news, how-to, tips and tricks..."
2056
  msgstr ""
2057
 
2058
- #: inc/admin/admin-notifications-center.php:632
2059
  msgid "Upload a list of links to disavow to Google"
2060
  msgstr ""
2061
 
2062
- #: inc/admin/admin-notifications-center.php:633
2063
  msgid "Google Trends"
2064
  msgstr ""
2065
 
2066
- #: inc/admin/admin-notifications-center.php:635
2067
  msgid ""
2068
  "Image SEO plugin to optimize your image ALT texts and names for Search "
2069
  "Engines."
2070
  msgstr ""
2071
 
2072
- #: inc/admin/admin-notifications-center.php:637
2073
  msgid "Dareboost: Test, analyze and optimize your website"
2074
  msgstr ""
2075
 
2076
- #: inc/admin/admin-notifications-center.php:638
2077
  msgid "Google Campaign URL Builder tool"
2078
  msgstr ""
2079
 
@@ -2330,7 +2352,7 @@ msgid ""
2330
  "any WP Meta SEO data."
2331
  msgstr ""
2332
 
2333
- #: inc/admin/admin-wizard.php:415 inc/admin/admin-wizard.php:844
2334
  msgid "Next step"
2335
  msgstr ""
2336
 
@@ -2549,76 +2571,60 @@ msgstr ""
2549
  msgid "Your site is now ready for search engines!"
2550
  msgstr ""
2551
 
2552
- #: inc/admin/admin-wizard.php:812 inc/functions/options-advanced-admin.php:18
2553
  msgid "Welcome to SEOPress PRO!"
2554
  msgstr ""
2555
 
2556
- #: inc/admin/admin-wizard.php:815 inc/functions/options-advanced-admin.php:19
2557
  msgid ""
2558
  "Please activate your license to receive automatic updates and get premium "
2559
  "support."
2560
  msgstr ""
2561
 
2562
- #: inc/admin/admin-wizard.php:820 inc/functions/options-advanced-admin.php:20
2563
  msgid "Activate License"
2564
  msgstr ""
2565
 
2566
- #: inc/admin/admin-wizard.php:827
2567
  msgid "Go PRO with SEOPress PRO!"
2568
  msgstr ""
2569
 
2570
- #: inc/admin/admin-wizard.php:830
2571
  msgid ""
2572
  "When you upgrade to the PRO version, you get a lot of additional features, "
2573
  "like automatic and manual schemas, Video Sitemap, WooCommerce enhancements, "
2574
  "Analytics statistics in your Dashboard, breadcrumbs, redirections, and more."
2575
  msgstr ""
2576
 
2577
- #: inc/admin/admin-wizard.php:835
2578
  msgid "Buy SEOPress PRO - $39 / unlimited sites"
2579
  msgstr ""
2580
 
2581
- #: inc/admin/admin-wizard.php:845
2582
  msgid "Create your XML sitemaps"
2583
  msgstr ""
2584
 
2585
- #: inc/admin/admin-wizard.php:846
2586
  msgid "Build custom XML sitemaps to improve Google's crawling of your site."
2587
  msgstr ""
2588
 
2589
- #: inc/admin/admin-wizard.php:851
2590
  msgid "Configure your XML sitemaps"
2591
  msgstr ""
2592
 
2593
- #: inc/admin/admin-wizard.php:858
2594
- msgid "Follow us:"
2595
- msgstr ""
2596
-
2597
- #: inc/admin/admin-wizard.php:865
2598
- msgid "Like our Facebook page"
2599
- msgstr ""
2600
-
2601
- #: inc/admin/admin-wizard.php:877
2602
- msgid "Watch our guided tour videos to learn more about SEOPress"
2603
- msgstr ""
2604
-
2605
- #: inc/admin/admin-wizard.php:883
2606
- msgid "The off side of SEOPress"
2607
- msgstr ""
2608
-
2609
- #: inc/admin/admin-wizard.php:891
2610
  msgid "You can also:"
2611
  msgstr ""
2612
 
2613
- #: inc/admin/admin-wizard.php:896
2614
  msgid "Visit Dashboard"
2615
  msgstr ""
2616
 
2617
- #: inc/admin/admin-wizard.php:899
2618
  msgid "Review Settings"
2619
  msgstr ""
2620
 
2621
- #: inc/admin/admin-wizard.php:902
2622
  msgid "Knowledge base"
2623
  msgstr ""
2624
 
@@ -2630,10 +2636,6 @@ msgstr ""
2630
  msgid "Dashboard"
2631
  msgstr ""
2632
 
2633
- #: inc/admin/admin.php:194
2634
- msgid "Analytics"
2635
- msgstr ""
2636
-
2637
  #: inc/admin/admin.php:203
2638
  #, php-format
2639
  msgid "%%sep%%"
@@ -3133,7 +3135,7 @@ msgstr ""
3133
  msgid "Data"
3134
  msgstr ""
3135
 
3136
- #: inc/admin/admin.php:673 seopress.php:408
3137
  msgid "Settings"
3138
  msgstr ""
3139
 
@@ -5178,15 +5180,15 @@ msgid ""
5178
  "Hook to filter structured data types metabox call by post type - new window"
5179
  msgstr ""
5180
 
5181
- #: inc/admin/adminbar.php:65
5182
  msgid "BOT"
5183
  msgstr ""
5184
 
5185
- #: inc/admin/adminbar.php:101
5186
  msgid "Broken Links"
5187
  msgstr ""
5188
 
5189
- #: inc/admin/adminbar.php:115
5190
  msgid "Configuration wizard"
5191
  msgstr ""
5192
 
@@ -5373,21 +5375,21 @@ msgstr ""
5373
  msgid "Please upload a valid .txt file"
5374
  msgstr ""
5375
 
5376
- #: inc/functions/sitemap/template-xml-sitemaps-xsl.php:126
5377
  msgid "XML Sitemaps"
5378
  msgstr ""
5379
 
5380
- #: inc/functions/sitemap/template-xml-sitemaps-xsl.php:129
5381
  #, php-format
5382
  msgid "This XML Sitemap Index file contains %s sitemaps."
5383
  msgstr ""
5384
 
5385
- #: inc/functions/sitemap/template-xml-sitemaps-xsl.php:132
5386
  #, php-format
5387
  msgid "This XML Sitemap contains %s URL(s)."
5388
  msgstr ""
5389
 
5390
- #: inc/functions/variables/dynamic-variables.php:65
5391
  #, php-format
5392
  msgid "Page %d of %2$d"
5393
  msgstr ""
@@ -5396,18 +5398,42 @@ msgstr ""
5396
  msgid "has been successfully updated!"
5397
  msgstr ""
5398
 
5399
- #: seopress.php:345
5400
  msgid "You like SEOPress? Don't forget to rate it 5 stars!"
5401
  msgstr ""
5402
 
5403
- #: seopress.php:409
5404
  msgid "Docs"
5405
  msgstr ""
5406
 
5407
- #: seopress.php:410
5408
  msgid "Configuration Wizard"
5409
  msgstr ""
5410
 
5411
- #: seopress.php:412
5412
  msgid "GO PRO!"
5413
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  msgstr ""
4
  "Project-Id-Version: SEOPress\n"
5
  "Report-Msgid-Bugs-To: http://wordpress.org/tag/wp-cloudy\n"
6
+ "POT-Creation-Date: 2020-04-28 13:22+0200\n"
7
  "PO-Revision-Date: 2019-08-22 12:52+0200\n"
8
  "Last-Translator: \n"
9
  "Language-Team: Benjamin DENIS <contact@seopress.org>\n"
29
  #: inc/admin/admin-features-list.php:18 inc/admin/admin-features-list.php:34
30
  #: inc/admin/admin-features-list.php:50 inc/admin/admin-features-list.php:66
31
  #: inc/admin/admin-features-list.php:82 inc/admin/admin-features-list.php:93
32
+ #: inc/admin/admin-features-list.php:112 inc/admin/admin-features-list.php:128
33
+ #: inc/admin/admin-features-list.php:137 inc/admin/admin-features-list.php:146
34
+ #: inc/admin/admin-features-list.php:155 inc/admin/admin-features-list.php:174
35
+ #: inc/admin/admin-features-list.php:190 inc/admin/admin-features-list.php:211
36
  #: inc/admin/admin-features-list.php:228 inc/admin/admin-features-list.php:247
37
+ #: inc/admin/admin-features-list.php:266 inc/admin/admin-features-list.php:304
38
+ #: inc/admin/admin-features-list.php:314 inc/admin/admin-features-list.php:324
39
+ #: inc/admin/admin-features-list.php:335 inc/admin/admin-features-list.php:346
40
+ #: inc/admin/admin-features-list.php:364
41
  msgid "Manage"
42
  msgstr ""
43
 
44
  #: inc/admin/admin-features-list.php:23 inc/admin/admin-features-list.php:39
45
  #: inc/admin/admin-features-list.php:55 inc/admin/admin-features-list.php:71
46
+ #: inc/admin/admin-features-list.php:98 inc/admin/admin-features-list.php:117
47
+ #: inc/admin/admin-features-list.php:163 inc/admin/admin-features-list.php:179
48
+ #: inc/admin/admin-features-list.php:195 inc/admin/admin-features-list.php:216
49
  #: inc/admin/admin-features-list.php:233 inc/admin/admin-features-list.php:252
50
+ #: inc/admin/admin-features-list.php:271 inc/admin/admin-features-list.php:290
51
+ #: inc/admin/admin-features-list.php:351 inc/admin/admin-features-list.php:369
52
+ #: inc/admin/admin.php:293 inc/admin/admin.php:299
53
  msgid "Read our guide"
54
  msgstr ""
55
 
83
  msgstr ""
84
 
85
  #: inc/admin/admin-features-list.php:63 inc/admin/admin-header.php:54
86
+ #: inc/admin/admin.php:194 inc/admin/adminbar.php:44
87
+ msgid "Analytics"
88
  msgstr ""
89
 
90
  #: inc/admin/admin-features-list.php:64
91
+ msgid "Track everything about your visitors with Google Analytics / Matomo"
92
  msgstr ""
93
 
94
  #: inc/admin/admin-features-list.php:72
106
  msgstr ""
107
 
108
  #: inc/admin/admin-features-list.php:90 inc/admin/admin-header.php:68
109
+ #: inc/admin/adminbar.php:58
110
+ msgid "Insights"
111
  msgstr ""
112
 
113
  #: inc/admin/admin-features-list.php:91
114
+ msgid "Track your keyword positions and backlinks directly in your WordPress."
115
  msgstr ""
116
 
117
+ #: inc/admin/admin-features-list.php:99 inc/admin/admin-features-list.php:118
118
  msgid "Guide to optimize your WooCommerce SEO - new window"
119
  msgstr ""
120
 
121
+ #: inc/admin/admin-features-list.php:109 inc/admin/admin-header.php:77
122
+ msgid "WooCommerce"
123
+ msgstr ""
124
+
125
+ #: inc/admin/admin-features-list.php:110
126
+ msgid "Improve WooCommerce SEO"
127
+ msgstr ""
128
+
129
+ #: inc/admin/admin-features-list.php:125 inc/admin/admin-header.php:83
130
  msgid "Easy Digital Downloads"
131
  msgstr ""
132
 
133
+ #: inc/admin/admin-features-list.php:126
134
  msgid "Improve Easy Digital Downloads SEO"
135
  msgstr ""
136
 
137
+ #: inc/admin/admin-features-list.php:134 inc/admin/admin-header.php:89
138
  msgid "Local Business"
139
  msgstr ""
140
 
141
+ #: inc/admin/admin-features-list.php:135
142
  msgid "Add Google Local Business data type"
143
  msgstr ""
144
 
145
+ #: inc/admin/admin-features-list.php:143 inc/admin/admin-header.php:95
146
  msgid "Dublin Core"
147
  msgstr ""
148
 
149
+ #: inc/admin/admin-features-list.php:144
150
  msgid "Add Dublin Core meta tags"
151
  msgstr ""
152
 
153
+ #: inc/admin/admin-features-list.php:152
154
  msgid "Structured Data Types"
155
  msgstr ""
156
 
157
+ #: inc/admin/admin-features-list.php:153
158
  msgid ""
159
  "Add data types to your content: articles, courses, recipes, videos, events, "
160
  "products and more."
161
  msgstr ""
162
 
163
+ #: inc/admin/admin-features-list.php:158 inc/admin/admin-features-list.php:244
164
  msgid "See schemas"
165
  msgstr ""
166
 
167
+ #: inc/admin/admin-features-list.php:164 inc/admin/admin-features-list.php:253
168
  msgid "Guide to add schemas with SEOPress PRO - new window"
169
  msgstr ""
170
 
171
+ #: inc/admin/admin-features-list.php:171 inc/admin/admin-header.php:107
172
  msgid "Breadcrumbs"
173
  msgstr ""
174
 
175
+ #: inc/admin/admin-features-list.php:172
176
  msgid "Enable Breadcrumbs for your theme and improve your SEO in SERPs"
177
  msgstr ""
178
 
179
+ #: inc/admin/admin-features-list.php:180
180
  msgid "Guide to enable Breadcrumbs - new window"
181
  msgstr ""
182
 
183
+ #: inc/admin/admin-features-list.php:187 inc/admin/admin-header.php:113
184
  msgid "Google Page Speed"
185
  msgstr ""
186
 
187
+ #: inc/admin/admin-features-list.php:188
188
  msgid "Track your website performance to improve SEO with Google Page Speed"
189
  msgstr ""
190
 
191
+ #: inc/admin/admin-features-list.php:196
192
  msgid "Guide to analyze your site with Google Page Speed - new window"
193
  msgstr ""
194
 
195
+ #: inc/admin/admin-features-list.php:205 inc/admin/admin-header.php:120
196
  msgid "robots.txt"
197
  msgstr ""
198
 
199
+ #: inc/admin/admin-features-list.php:206
200
  msgid "Edit your robots.txt file"
201
  msgstr ""
202
 
203
+ #: inc/admin/admin-features-list.php:208
204
  msgid "View your robots.txt"
205
  msgstr ""
206
 
207
+ #: inc/admin/admin-features-list.php:217 inc/admin/admin-features-list.php:234
208
  msgid "Guide to edit your robots.txt file - new window"
209
  msgstr ""
210
 
211
+ #: inc/admin/admin-features-list.php:225 inc/admin/admin-header.php:127
212
  msgid "Google News Sitemap"
213
  msgstr ""
214
 
215
+ #: inc/admin/admin-features-list.php:226
216
  msgid "Optimize your site for Google News"
217
  msgstr ""
218
 
219
+ #: inc/admin/admin-features-list.php:241 inc/admin/adminbar.php:93
220
  msgid "Schemas"
221
  msgstr ""
222
 
223
+ #: inc/admin/admin-features-list.php:242
224
  msgid "Create / manage your schemas"
225
  msgstr ""
226
 
227
+ #: inc/admin/admin-features-list.php:260 inc/admin/admin-header.php:133
228
+ #: inc/admin/admin.php:675 inc/admin/adminbar.php:101
229
  msgid "Redirections"
230
  msgstr ""
231
 
232
+ #: inc/admin/admin-features-list.php:261
233
  msgid "Monitor 404, create 301, 302 and 307 redirections"
234
  msgstr ""
235
 
236
+ #: inc/admin/admin-features-list.php:263
237
  msgid "See redirects"
238
  msgstr ""
239
 
240
+ #: inc/admin/admin-features-list.php:272
241
  msgid "Guide to enable 301 redirections and 404 monitoring - new window"
242
  msgstr ""
243
 
244
+ #: inc/admin/admin-features-list.php:279 inc/admin/admin-header.php:139
245
  msgid "Broken links"
246
  msgstr ""
247
 
248
+ #: inc/admin/admin-features-list.php:280
249
  msgid "Scan your site to find SEO problems."
250
  msgstr ""
251
 
252
+ #: inc/admin/admin-features-list.php:282
253
  msgid "See broken links"
254
  msgstr ""
255
 
256
+ #: inc/admin/admin-features-list.php:285
257
  msgid "Scan"
258
  msgstr ""
259
 
260
+ #: inc/admin/admin-features-list.php:291
261
  msgid "Guide to find broken links with SEOPress PRO - new window"
262
  msgstr ""
263
 
264
+ #: inc/admin/admin-features-list.php:298 inc/admin/admin-header.php:145
265
+ #: inc/admin/adminbar.php:116
266
  msgid "Backlinks"
267
  msgstr ""
268
 
269
+ #: inc/admin/admin-features-list.php:299
270
  msgid "Check your backlinks with Majestic API."
271
  msgstr ""
272
 
273
+ #: inc/admin/admin-features-list.php:301
274
  msgid "See backlinks"
275
  msgstr ""
276
 
277
+ #: inc/admin/admin-features-list.php:311 inc/admin/admin-header.php:151
278
  msgid "URL Rewriting"
279
  msgstr ""
280
 
281
+ #: inc/admin/admin-features-list.php:312
282
  msgid "Customize your permalinks."
283
  msgstr ""
284
 
285
+ #: inc/admin/admin-features-list.php:321 inc/admin/admin-header.php:164
286
  msgid ".htaccess"
287
  msgstr ""
288
 
289
+ #: inc/admin/admin-features-list.php:322
290
  msgid "Edit your htaccess file."
291
  msgstr ""
292
 
293
+ #: inc/admin/admin-features-list.php:332 inc/admin/admin-header.php:171
294
  msgid "RSS"
295
  msgstr ""
296
 
297
+ #: inc/admin/admin-features-list.php:333
298
  msgid "Configure default WordPress RSS."
299
  msgstr ""
300
 
301
+ #: inc/admin/admin-features-list.php:343 inc/admin/admin-header.php:184
302
+ #: inc/admin/admin.php:196 inc/admin/adminbar.php:65
303
  msgid "Tools"
304
  msgstr ""
305
 
306
+ #: inc/admin/admin-features-list.php:344
307
  msgid "Import/Export plugin settings from site to site."
308
  msgstr ""
309
 
310
+ #: inc/admin/admin-features-list.php:352
311
  msgid "Guide to Export/Import/Reset settings - new window"
312
  msgstr ""
313
 
314
+ #: inc/admin/admin-features-list.php:361 inc/admin/admin-header.php:177
315
+ #: inc/admin/admin-notifications-center.php:555 inc/admin/adminbar.php:80
316
  msgid "License"
317
  msgstr ""
318
 
319
+ #: inc/admin/admin-features-list.php:362
320
  msgid "Edit your license key."
321
  msgstr ""
322
 
323
+ #: inc/admin/admin-features-list.php:370
324
  msgid "Guide to activate SEOPress PRO - new window"
325
  msgstr ""
326
 
327
+ #: inc/admin/admin-features-list.php:425 inc/admin/admin-features-list.php:429
328
  msgid "Click to disable"
329
  msgstr ""
330
 
331
+ #: inc/admin/admin-features-list.php:426 inc/admin/admin-features-list.php:428
332
  msgid "Click to enable"
333
  msgstr ""
334
 
364
  msgid "SEOPress"
365
  msgstr ""
366
 
367
+ #: inc/admin/admin-header.php:24 inc/admin/admin-notifications-center.php:584
368
+ #: inc/admin/adminbar.php:86
369
  msgid "PRO"
370
  msgstr ""
371
 
383
  msgid "XML / HTML Sitemap"
384
  msgstr ""
385
 
386
+ #: inc/admin/admin-header.php:101
387
  msgid "Structured Data Types (schema.org)"
388
  msgstr ""
389
 
390
+ #: inc/admin/admin-header.php:158
391
  msgid "White Label"
392
  msgstr ""
393
 
394
+ #: inc/admin/admin-header.php:209
395
  msgid "See the changelog (new window)"
396
  msgstr ""
397
 
398
+ #: inc/admin/admin-header.php:211
399
  msgid "See the changelog"
400
  msgstr ""
401
 
402
+ #: inc/admin/admin-header.php:213 inc/admin/admin-header.php:215
403
  msgid "Send feedback"
404
  msgstr ""
405
 
406
+ #: inc/admin/admin-header.php:217
407
  msgid "Follow us on Twitter (new window)"
408
  msgstr ""
409
 
410
+ #: inc/admin/admin-header.php:219 seopress.php:1214
411
  msgid "Follow us on Twitter"
412
  msgstr ""
413
 
414
+ #: inc/admin/admin-header.php:221
415
  msgid "Follow us on YouTube (new window)"
416
  msgstr ""
417
 
418
+ #: inc/admin/admin-header.php:223
419
  msgid "Follow us on YouTube"
420
  msgstr ""
421
 
422
+ #: inc/admin/admin-header.php:225
423
  msgid "Official website (new window)"
424
  msgstr ""
425
 
426
+ #: inc/admin/admin-header.php:227
427
  msgid "Official website"
428
  msgstr ""
429
 
430
+ #: inc/admin/admin-header.php:229
431
  msgid "Support (new window)"
432
  msgstr ""
433
 
434
+ #: inc/admin/admin-header.php:231
435
  msgid "Support"
436
  msgstr ""
437
 
447
  msgstr ""
448
 
449
  #: inc/admin/admin-metaboxes-content-analysis-form.php:12
450
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:13
451
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:15
452
  #: inc/functions/options-advanced-admin.php:822
453
  msgid "Target keywords"
454
  msgstr ""
455
 
456
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:13
457
  msgid ""
458
  "Separate target keywords with commas. Do not use spaces after the commas, "
459
+ "unless you want to include them"
 
460
  msgstr ""
461
 
462
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:15
463
  msgid "Enter your target keywords"
464
  msgstr ""
465
 
466
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:18
467
  msgid "Analyze my content"
468
  msgstr ""
469
 
470
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:20
471
  msgid "Refresh analysis"
472
  msgstr ""
473
 
474
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:23
475
  msgid "To get the most accurate analysis, save your post first."
476
  msgstr ""
477
 
478
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:28
479
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:29
480
  msgid "Google suggestions"
481
  msgstr ""
482
 
483
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:29
484
  msgid ""
485
  "Enter a keyword, or a phrase, to find the top 10 Google suggestions "
486
  "instantly. This is useful if you want to work with the long tail technique."
487
  msgstr ""
488
 
489
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:33
490
  msgid "Get suggestions!"
491
  msgstr ""
492
 
493
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:88
494
  msgid "Structured data types"
495
  msgstr ""
496
 
497
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:93
498
  msgid "Last modified date"
499
  msgstr ""
500
 
501
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:98
502
  msgid "Words counter"
503
  msgstr ""
504
 
505
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:103
506
  msgid "Keywords density"
507
  msgstr ""
508
 
509
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:108
510
  msgid "Keywords in permalink"
511
  msgstr ""
512
 
513
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:113
514
  msgid "Headings"
515
  msgstr ""
516
 
517
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:118
518
  #: inc/admin/admin-metaboxes-form.php:106
519
  msgid "Meta title"
520
  msgstr ""
521
 
522
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:123
523
  #: inc/admin/admin-metaboxes-form.php:130
524
  #: inc/admin/admin-metaboxes-form.php:131
525
  #: inc/admin/admin-metaboxes-form.php:133 inc/admin/admin-wizard.php:294
533
  msgid "Meta description"
534
  msgstr ""
535
 
536
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:128
537
  msgid "Social meta tags"
538
  msgstr ""
539
 
540
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:133
541
  msgid "Meta robots"
542
  msgstr ""
543
 
544
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:138
545
  msgid "Alternative texts of images"
546
  msgstr ""
547
 
548
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:143
549
  msgid "NoFollow Links"
550
  msgstr ""
551
 
552
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:148
553
  msgid "Outbound Links"
554
  msgstr ""
555
 
556
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:156
557
  msgid "We found these schemas in the source code of this page:"
558
  msgstr ""
559
 
560
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:163
561
  msgid "duplicated schema - x"
562
  msgstr ""
563
 
564
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:172
565
  msgid "No schemas found in the source code of this page."
566
  msgstr ""
567
 
568
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:179
569
  msgid "This post is a little old!"
570
  msgstr ""
571
 
572
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:181
573
  msgid "The last modified date of this article is less than 1 year. Cool!"
574
  msgstr ""
575
 
576
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:183
577
  msgid ""
578
  "Search engines love fresh content. Regularly update your articles without "
579
  "having to rewrite your content entirely and give them a boost in search "
580
  "rankings. SEOPress takes care of the technical part."
581
  msgstr ""
582
 
583
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:189
584
  msgid ""
585
  "Words counter is not a direct ranking factor. But, your content must be as "
586
  "qualitative as possible, with relevant and unique information. To fulfill "
587
  "these conditions, your article requires a minimum of paragraphs, so words."
588
  msgstr ""
589
 
590
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:191
591
  msgid "words found."
592
  msgstr ""
593
 
594
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:192
595
  msgid "unique words found."
596
  msgstr ""
597
 
598
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:195
599
  msgid ""
600
  "Your content is composed of more than 300 words, which is the minimum for a "
601
  "post."
602
  msgstr ""
603
 
604
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:197
605
  msgid "Your content is too short. Add a few more paragraphs!"
606
  msgstr ""
607
 
608
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:204
609
  msgid "No content? Add a few more paragraphs!"
610
  msgstr ""
611
 
612
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:219
613
  #, php-format
614
  msgid "%s was found %d times in your content, a keyword density of %s%%"
615
  msgstr ""
616
 
617
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:222
618
  msgid ""
619
  "Learn more about <a href=\"https://www.youtube.com/watch?v=Rk4qgQdp2UA\" "
620
  "target=\"_blank\">keywords stuffing</a>."
621
  msgstr ""
622
 
623
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:226
624
  msgid ""
625
  "We were unable to calculate the density of your keywords. You probably "
626
  "haven‘t added any content or your target keywords were not find in your post "
627
  "content."
628
  msgstr ""
629
 
630
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:232
631
  msgid "Cool, one of your target keyword is used in your permalink."
632
  msgstr ""
633
 
634
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:244
635
  msgid "You should add one of your target keyword in your permalink."
636
  msgstr ""
637
 
638
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:252
639
  msgid "H1 (Heading 1)"
640
  msgstr ""
641
 
642
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:260
643
  msgid "Target keywords were found in Heading 1 (H1)."
644
  msgstr ""
645
 
646
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:269
647
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:299
648
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:320
649
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:343
650
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:377
651
  #, php-format
652
  msgid "%s was found %d times."
653
  msgstr ""
654
 
655
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:274
656
  #, php-format
657
  msgid "We found %d Heading 1 (H1) in your content."
658
  msgstr ""
659
 
660
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:275
661
  msgid ""
662
  "You should not use more than one H1 heading in your post content. The rule "
663
  "is simple: only one H1 for each web page. It is better for both SEO and "
664
  "accessibility. Below, the list:"
665
  msgstr ""
666
 
667
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:289
668
  msgid "H2 (Heading 2)"
669
  msgstr ""
670
 
671
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:291
672
  msgid "Target keywords were found in Heading 2 (H2)."
673
  msgstr ""
674
 
675
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:303
676
  msgid "None of your target keywords were found in Heading 2 (H2)."
677
  msgstr ""
678
 
679
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:310
680
  msgid "H3 (Heading 3)"
681
  msgstr ""
682
 
683
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:312
684
  msgid "Target keywords were found in Heading 3 (H3)."
685
  msgstr ""
686
 
687
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:324
688
  msgid "None of your target keywords were found in Heading 3 (H3)."
689
  msgstr ""
690
 
691
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:335
692
  msgid "Target keywords were found in the Meta Title."
693
  msgstr ""
694
 
695
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:349
696
  msgid "None of your target keywords were found in the Meta Title."
697
  msgstr ""
698
 
699
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:354
700
  msgid "Your custom title is too long."
701
  msgstr ""
702
 
703
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:357
704
  msgid "The length of your title is correct"
705
  msgstr ""
706
 
707
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:362
708
  msgid ""
709
  "No custom title is set for this post. If the global meta title suits you, "
710
  "you can ignore this recommendation."
711
  msgstr ""
712
 
713
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:369
714
  msgid "Target keywords were found in the Meta description."
715
  msgstr ""
716
 
717
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:383
718
  msgid "None of your target keywords were found in the Meta description."
719
  msgstr ""
720
 
721
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:388
722
  msgid "You custom meta description is too long."
723
  msgstr ""
724
 
725
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:391
726
  msgid "The length of your meta description is correct"
727
  msgstr ""
728
 
729
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:396
730
  msgid ""
731
  "No custom meta description is set for this post. If the global meta "
732
  "description suits you, you can ignore this recommendation."
733
  msgstr ""
734
 
735
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:403
736
  msgid "Open Graph Title"
737
  msgstr ""
738
 
739
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:412
740
  #, php-format
741
  msgid "We found %d og:title in your content."
742
  msgstr ""
743
 
744
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:413
745
  msgid ""
746
  "You should not use more than one og:title in your post content to avoid "
747
  "conflicts when sharing on social networks. Facebook will take the last og:"
748
  "title tag from your source code. Below, the list:"
749
  msgstr ""
750
 
751
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:415
752
  msgid "We found an Open Graph Title tag in your source code."
753
  msgstr ""
754
 
755
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:427
756
  msgid "Your Open Graph Title is missing!"
757
  msgstr ""
758
 
759
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:431
760
  msgid "Open Graph Description"
761
  msgstr ""
762
 
763
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:441
764
  #, php-format
765
  msgid "We found %d og:description in your content."
766
  msgstr ""
767
 
768
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:442
769
  msgid ""
770
  "You should not use more than one og:description in your post content to "
771
  "avoid conflicts when sharing on social networks. Facebook will take the last "
772
  "og:description tag from your source code. Below, the list:"
773
  msgstr ""
774
 
775
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:444
776
  msgid "We found an Open Graph Description tag in your source code."
777
  msgstr ""
778
 
779
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:456
780
  msgid "Your Open Graph Description is missing!"
781
  msgstr ""
782
 
783
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:460
784
  msgid "Open Graph Image"
785
  msgstr ""
786
 
787
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:469
788
  #, php-format
789
  msgid "We found %d og:image in your content."
790
  msgstr ""
791
 
792
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:481
793
  msgid "Your Open Graph Image is missing!"
794
  msgstr ""
795
 
796
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:485
797
  msgid "Open Graph URL"
798
  msgstr ""
799
 
800
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:495
801
  #, php-format
802
  msgid "We found %d og:url in your content."
803
  msgstr ""
804
 
805
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:496
806
  msgid ""
807
  "You should not use more than one og:url in your post content to avoid "
808
  "conflicts when sharing on social networks. Facebook will take the last og:"
809
  "url tag from your source code. Below, the list:"
810
  msgstr ""
811
 
812
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:498
813
  msgid "We found an Open Graph URL tag in your source code."
814
  msgstr ""
815
 
816
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:510
817
  msgid "Your Open Graph URL is missing!"
818
  msgstr ""
819
 
820
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:514
821
  msgid "Open Graph Site Name"
822
  msgstr ""
823
 
824
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:524
825
  #, php-format
826
  msgid "We found %d og:site_name in your content."
827
  msgstr ""
828
 
829
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:525
830
  msgid ""
831
  "You should not use more than one og:site_name in your post content to avoid "
832
  "conflicts when sharing on social networks. Facebook will take the last og:"
833
  "site_name tag from your source code. Below, the list:"
834
  msgstr ""
835
 
836
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:527
837
  msgid "We found an Open Graph Site Name tag in your source code."
838
  msgstr ""
839
 
840
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:539
841
  msgid "Your Open Graph Site Name is missing!"
842
  msgstr ""
843
 
844
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:543
845
  #: inc/admin/admin-metaboxes-form.php:374
846
  #: inc/admin/admin-metaboxes-form.php:375
847
  msgid "Twitter Title"
848
  msgstr ""
849
 
850
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:553
851
  #, php-format
852
  msgid "We found %d twitter:title in your content."
853
  msgstr ""
854
 
855
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:554
856
  msgid ""
857
  "You should not use more than one twitter:title in your post content to avoid "
858
  "conflicts when sharing on social networks. Twitter will take the last "
859
  "twitter:title tag from your source code. Below, the list:"
860
  msgstr ""
861
 
862
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:556
863
  msgid "We found a Twitter Title Tag in your source code."
864
  msgstr ""
865
 
866
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:568
867
  msgid "Your Twitter Title is missing!"
868
  msgstr ""
869
 
870
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:572
871
  msgid "Twitter Description"
872
  msgstr ""
873
 
874
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:582
875
  #, php-format
876
  msgid "We found %d twitter:description in your content."
877
  msgstr ""
878
 
879
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:583
880
  msgid ""
881
  "You should not use more than one twitter:description in your post content to "
882
  "avoid conflicts when sharing on social networks. Twitter will take the last "
883
  "twitter:description tag from your source code. Below, the list:"
884
  msgstr ""
885
 
886
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:585
887
  msgid "We found a Twitter Description tag in your source code."
888
  msgstr ""
889
 
890
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:597
891
  msgid "Your Twitter Description is missing!"
892
  msgstr ""
893
 
894
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:601
895
  msgid "Twitter Image"
896
  msgstr ""
897
 
898
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:610
899
  #, php-format
900
  msgid "We found %d twitter:image in your content."
901
  msgstr ""
902
 
903
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:622
904
  msgid "Your Twitter Image is missing!"
905
  msgstr ""
906
 
907
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:637
908
  #, php-format
909
  msgid ""
910
  "We found %s meta robots in your page. There is probably something wrong with "
911
  "your theme!"
912
  msgstr ""
913
 
914
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:642
915
  msgid "noindex is on! Search engines can't index this page."
916
  msgstr ""
917
 
918
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:644
919
  msgid "noindex is off. Search engines will index this page."
920
  msgstr ""
921
 
922
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:649
923
  msgid "nofollow is on! Search engines can't follow your links on this page."
924
  msgstr ""
925
 
926
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:651
927
  msgid "nofollow is off. Search engines will follow links on this page."
928
  msgstr ""
929
 
930
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:658
931
  msgid "noarchive is on! Search engines will not cache your page."
932
  msgstr ""
933
 
934
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:660
935
  msgid "noarchive is off. Search engines will probably cache your page."
936
  msgstr ""
937
 
938
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:667
939
  msgid ""
940
  "nosnippet is on! Search engines will not display a snippet of this page in "
941
  "search results."
942
  msgstr ""
943
 
944
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:669
945
  msgid ""
946
  "nosnippet is off. Search engines will display a snippet of this page in "
947
  "search results."
948
  msgstr ""
949
 
950
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:672
951
  msgid ""
952
  "We found no meta robots on this page. It means, your page is index,follow. "
953
  "Search engines will index it, and follow links. "
954
  msgstr ""
955
 
956
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:681
957
  msgid ""
958
  "noimageindex is on! Google will not index your images on this page (but if "
959
  "someone makes a direct link to one of your image in this page, it will be "
960
  "indexed)."
961
  msgstr ""
962
 
963
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:683
964
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:695
965
  msgid "noimageindex is off. Google will index the images on this page."
966
  msgstr ""
967
 
968
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:690
969
  msgid ""
970
  "nositelinkssearchbox is on! Google will not display a sitelinks searchbox in "
971
  "search results."
972
  msgstr ""
973
 
974
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:692
975
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:697
976
  msgid ""
977
  "nositelinkssearchbox is off. Google will probably display a sitelinks "
978
  "searchbox in search results."
979
  msgstr ""
980
 
981
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:710
982
  msgid ""
983
  "No alternative text found for these images. Alt tags are important for both "
984
  "SEO and accessibility. Edit your images using the media library or your "
985
  "favorite page builder and fill in alternative text fields."
986
  msgstr ""
987
 
988
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:721
989
  msgid "All alternative tags are filled in. Good work!"
990
  msgstr ""
991
 
992
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:728
993
  msgid ""
994
  "We could not find any image in your content. Content with media is a plus "
995
  "for your SEO."
996
  msgstr ""
997
 
998
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:735
999
  #, php-format
1000
  msgid ""
1001
  "We found %d links with nofollow attribute in your page. Do not overuse "
1002
  "nofollow attribute in links. Below, the list:"
1003
  msgstr ""
1004
 
1005
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:746
1006
  msgid "This page doesn't have any nofollow links."
1007
  msgstr ""
1008
 
1009
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:750
1010
  msgid ""
1011
  "Internet is built on the principle of hyperlink. It is therefore perfectly "
1012
  "normal to make links between different websites. However, avoid making links "
1014
  "site, add the attribute \"nofollow\" to your link."
1015
  msgstr ""
1016
 
1017
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:754
1018
  #, php-format
1019
  msgid "We found %s outbound links in your page. Below, the list:"
1020
  msgstr ""
1021
 
1022
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:764
1023
  msgid "This page doesn't have any outbound links."
1024
  msgstr ""
1025
 
1026
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:778
1027
  msgid ""
1028
  "<strong>Should be improved:</strong> red or orange dots <br> <strong>Good:</"
1029
  "strong> yellow or green dots"
1030
  msgstr ""
1031
 
1032
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:783
1033
  #: inc/functions/options-advanced-admin.php:421
1034
  msgid "Should be improved"
1035
  msgstr ""
1036
 
1037
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:786
1038
  #: inc/functions/options-advanced-admin.php:416
1039
  msgid "Good"
1040
  msgstr ""
1041
 
1042
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:797
1043
  msgid "Expand"
1044
  msgstr ""
1045
 
1046
+ #: inc/admin/admin-metaboxes-content-analysis-form.php:797
1047
  msgid "Close"
1048
  msgstr ""
1049
 
1753
  msgstr ""
1754
 
1755
  #: inc/admin/admin-notifications-center.php:100
1756
+ #: inc/admin/admin-notifications-center.php:129
1757
  msgid "Wizard"
1758
  msgstr ""
1759
 
1760
  #: inc/admin/admin-notifications-center.php:104
1761
+ #: inc/admin/admin-notifications-center.php:133
1762
  msgid "Start the wizard"
1763
  msgstr ""
1764
 
1765
  #: inc/admin/admin-notifications-center.php:126
1766
+ msgid ""
1767
+ "Configure SEOPress Insights in a few minutes with our installation wizard"
1768
  msgstr ""
1769
 
1770
  #: inc/admin/admin-notifications-center.php:127
1771
  msgid ""
1772
+ "Track your keywords positions and backlinks directly on your WordPress site."
1773
+ msgstr ""
1774
+
1775
+ #: inc/admin/admin-notifications-center.php:156
1776
+ msgid "Your theme doesn't use <strong>add_theme_support('title-tag');</strong>"
1777
+ msgstr ""
1778
+
1779
+ #: inc/admin/admin-notifications-center.php:157
1780
+ msgid ""
1781
  "This error indicates that your theme uses a deprecated function to generate "
1782
  "the title tag of your pages. SEOPress will not be able to generate your "
1783
  "custom title tags if this error is not fixed."
1784
  msgstr ""
1785
 
1786
+ #: inc/admin/admin-notifications-center.php:159
1787
+ #: inc/admin/admin-notifications-center.php:191
 
1788
  #: inc/admin/admin-notifications-center.php:252
1789
+ #: inc/admin/admin-notifications-center.php:282
1790
+ #: inc/admin/admin-notifications-center.php:300
1791
+ #: inc/admin/admin-notifications-center.php:317
1792
+ #: inc/admin/admin-notifications-center.php:405
1793
+ #: inc/admin/admin-notifications-center.php:481
1794
+ #: inc/admin/admin-notifications-center.php:518
1795
+ #: inc/admin/admin-notifications-center.php:536
1796
  msgid "High impact"
1797
  msgstr ""
1798
 
1799
+ #: inc/admin/admin-notifications-center.php:164
1800
+ #: inc/admin/admin-notifications-center.php:231
1801
+ #: inc/admin/admin-notifications-center.php:257 inc/admin/admin.php:4821
1802
  #: inc/admin/admin.php:4863 inc/admin/admin.php:4890 inc/admin/admin.php:4912
1803
  #: inc/admin/admin.php:4934 inc/admin/admin.php:4956
1804
  msgid "Learn more"
1805
  msgstr ""
1806
 
1807
+ #: inc/admin/admin-notifications-center.php:188
1808
  #, php-format
1809
  msgid "We noticed that you use <strong>%s</strong> plugin."
1810
  msgstr ""
1811
 
1812
+ #: inc/admin/admin-notifications-center.php:189
1813
  msgid ""
1814
  "Do you want to migrate all your metadata to SEOPress? Do not use multiple "
1815
  "SEO plugins at once to avoid conflicts!"
1816
  msgstr ""
1817
 
1818
+ #: inc/admin/admin-notifications-center.php:195
1819
  msgid "Migrate!"
1820
  msgstr ""
1821
 
1822
+ #: inc/admin/admin-notifications-center.php:208
1823
  msgid "You have enabled 404 cleaning BUT the scheduled task is not running."
1824
  msgstr ""
1825
 
1826
+ #: inc/admin/admin-notifications-center.php:209
1827
  msgid ""
1828
  "To solve this, please disable and re-enable SEOPress PRO. No data will be "
1829
  "lost."
1830
  msgstr ""
1831
 
1832
+ #: inc/admin/admin-notifications-center.php:230
1833
  msgid "Your site doesn't use an SSL certificate!"
1834
  msgstr ""
1835
 
1836
+ #: inc/admin/admin-notifications-center.php:231
1837
  msgid ""
1838
  "Https is considered by Google as a positive signal for the ranking of your "
1839
  "site. It also reassures your visitors for data security, and improves trust."
1840
  msgstr ""
1841
 
1842
+ #: inc/admin/admin-notifications-center.php:233
1843
  msgid "Low impact"
1844
  msgstr ""
1845
 
1846
+ #: inc/admin/admin-notifications-center.php:237
1847
  msgid "Buy an SSL!"
1848
  msgstr ""
1849
 
1850
+ #: inc/admin/admin-notifications-center.php:249
1851
  msgid "PHP module \"DOM\" is missing on your server."
1852
  msgstr ""
1853
 
1854
+ #: inc/admin/admin-notifications-center.php:250
1855
  msgid ""
1856
  "This PHP module, installed by default with PHP, is required by many plugins "
1857
  "including SEOPress. Please contact your host as soon as possible to solve "
1858
  "this."
1859
  msgstr ""
1860
 
1861
+ #: inc/admin/admin-notifications-center.php:279
1862
  msgid "Your site is not visible to Search Engines!"
1863
  msgstr ""
1864
 
1865
+ #: inc/admin/admin-notifications-center.php:280
1866
  msgid ""
1867
  "You have activated the blocking of the indexing of your site. If your site "
1868
  "is under development, this is probably normal. Otherwise, check your "
1870
  "not concerned."
1871
  msgstr ""
1872
 
1873
+ #: inc/admin/admin-notifications-center.php:286
1874
+ #: inc/admin/admin-notifications-center.php:304
1875
+ #: inc/admin/admin-notifications-center.php:321
1876
+ #: inc/admin/admin-notifications-center.php:350
1877
+ #: inc/admin/admin-notifications-center.php:439
1878
+ #: inc/admin/admin-notifications-center.php:457
1879
+ #: inc/admin/admin-notifications-center.php:540
1880
+ #: inc/admin/admin-notifications-center.php:559
1881
  msgid "Fix this!"
1882
  msgstr ""
1883
 
1884
+ #: inc/admin/admin-notifications-center.php:297
1885
  msgid "Your site title is empty!"
1886
  msgstr ""
1887
 
1888
+ #: inc/admin/admin-notifications-center.php:298
1889
  msgid ""
1890
  "Your Site Title is used by WordPress, your theme and your plugins including "
1891
  "SEOPress. It is an essential component in the generation of title tags, but "
1892
  "not only. Enter one!"
1893
  msgstr ""
1894
 
1895
+ #: inc/admin/admin-notifications-center.php:314 inc/admin/admin.php:2764
1896
  msgid ""
1897
  "Your permalinks are not SEO Friendly! Enable pretty permalinks to fix this."
1898
  msgstr ""
1899
 
1900
+ #: inc/admin/admin-notifications-center.php:315
1901
+ #: inc/admin/admin-notifications-center.php:344
1902
  msgid ""
1903
  "Why is this important? Showing only the summary of each article "
1904
  "significantly reduces the theft of your content by third party sites. Not to "
1906
  "conversions..."
1907
  msgstr ""
1908
 
1909
+ #: inc/admin/admin-notifications-center.php:343
1910
  msgid "Your RSS feed shows full text!"
1911
  msgstr ""
1912
 
1913
+ #: inc/admin/admin-notifications-center.php:346
1914
+ #: inc/admin/admin-notifications-center.php:435
1915
+ #: inc/admin/admin-notifications-center.php:453
1916
  msgid "Medium impact"
1917
  msgstr ""
1918
 
1919
+ #: inc/admin/admin-notifications-center.php:373
1920
  msgid "You like SEOPress? Please help us by rating us 5 stars!"
1921
  msgstr ""
1922
 
1923
+ #: inc/admin/admin-notifications-center.php:374
1924
  msgid ""
1925
  "Support the development and improvement of the plugin by taking 15 seconds "
1926
  "of your time to leave us a user review on the official WordPress plugins "
1927
  "repository. Thank you!"
1928
  msgstr ""
1929
 
1930
+ #: inc/admin/admin-notifications-center.php:376
1931
  msgid "Information"
1932
  msgstr ""
1933
 
1934
+ #: inc/admin/admin-notifications-center.php:380
1935
  msgid "Rate us!"
1936
  msgstr ""
1937
 
1938
+ #: inc/admin/admin-notifications-center.php:402
1939
  msgid "Break comments into pages is ON!"
1940
  msgstr ""
1941
 
1942
+ #: inc/admin/admin-notifications-center.php:403
1943
  msgid ""
1944
  "Enabling this option will create duplicate content for each article beyond x "
1945
  "comments. This can have a disastrous effect by creating a large number of "
1947
  "ranking in search results."
1948
  msgstr ""
1949
 
1950
+ #: inc/admin/admin-notifications-center.php:409
1951
  msgid "Disable this!"
1952
  msgstr ""
1953
 
1954
+ #: inc/admin/admin-notifications-center.php:432
1955
  msgid "Display more posts per page on homepage and archives"
1956
  msgstr ""
1957
 
1958
+ #: inc/admin/admin-notifications-center.php:433
1959
  msgid ""
1960
  "To reduce the number pages search engines have to crawl to find all your "
1961
  "articles, it is recommended displaying more posts per page. This should not "
1962
  "be a problem for your users. Using mobile, we prefer to scroll down rather "
1963
+ "than clicking on next page links."
 
1964
  msgstr ""
1965
 
1966
+ #: inc/admin/admin-notifications-center.php:450
1967
  msgid "You don't have an XML Sitemap!"
1968
  msgstr ""
1969
 
1970
+ #: inc/admin/admin-notifications-center.php:451
1971
  msgid ""
1972
  "XML Sitemaps are useful to facilitate the crawling of your content by search "
1973
  "engine robots. Indirectly, this can benefit your ranking by reducing the "
1974
  "crawl bugdet."
1975
  msgstr ""
1976
 
1977
+ #: inc/admin/admin-notifications-center.php:478
1978
  msgid "Do you have a Google My Business page? It's free!"
1979
  msgstr ""
1980
 
1981
+ #: inc/admin/admin-notifications-center.php:479
1982
  msgid ""
1983
  "Local Business websites should have a My Business page to improve visibility "
1984
  "in search results. Click on the cross on the right to delete this "
1985
  "notification if you are not concerned."
1986
  msgstr ""
1987
 
1988
+ #: inc/admin/admin-notifications-center.php:485
1989
  msgid "Create your page now!"
1990
  msgstr ""
1991
 
1992
+ #: inc/admin/admin-notifications-center.php:515
1993
  msgid "Add your site to Google. It's free!"
1994
  msgstr ""
1995
 
1996
+ #: inc/admin/admin-notifications-center.php:516
1997
  msgid ""
1998
  "Is your brand new site online? So reference it as quickly as possible on "
1999
  "Google to get your first visitors via Google Search Console. Already the "
2000
  "case? Click on the cross on the right to remove this alert."
2001
  msgstr ""
2002
 
2003
+ #: inc/admin/admin-notifications-center.php:522
2004
  msgid "Add your site to Search Console!"
2005
  msgstr ""
2006
 
2007
+ #: inc/admin/admin-notifications-center.php:533
2008
  msgid "Structured data types is not correctly enabled"
2009
  msgstr ""
2010
 
2011
+ #: inc/admin/admin-notifications-center.php:534
2012
  msgid ""
2013
  "Please enable <strong>Structured Data Types metabox for your posts, pages "
2014
  "and custom post types</strong> option in order to use automatic and manual "
2015
  "schemas. (SEO > PRO > Structured Data Types (schema.org)"
2016
  msgstr ""
2017
 
2018
+ #: inc/admin/admin-notifications-center.php:552
2019
  msgid "You have to enter your licence key to get updates and support"
2020
  msgstr ""
2021
 
2022
+ #: inc/admin/admin-notifications-center.php:553
2023
  msgid ""
2024
  "Please activate the SEOPress PRO license key to automatically receive "
2025
  "updates to guarantee you the best user experience possible."
2026
  msgstr ""
2027
 
2028
+ #: inc/admin/admin-notifications-center.php:581
2029
  msgid "Take your SEO to the next level with SEOPress PRO!"
2030
  msgstr ""
2031
 
2032
+ #: inc/admin/admin-notifications-center.php:582
2033
  msgid ""
2034
  "The PRO version of SEOPress allows you to easily manage your structured data "
2035
  "(schemas), add a breadcrumb optimized for SEO and accessibility, improve SEO "
2037
  "of your metadata and so much more."
2038
  msgstr ""
2039
 
2040
+ #: inc/admin/admin-notifications-center.php:589
2041
  msgid "Upgrade now!"
2042
  msgstr ""
2043
 
2044
+ #: inc/admin/admin-notifications-center.php:606
2045
  msgid "Check websites setup on your server"
2046
  msgstr ""
2047
 
2048
+ #: inc/admin/admin-notifications-center.php:615
2049
  msgid "Not found"
2050
  msgstr ""
2051
 
2052
+ #: inc/admin/admin-notifications-center.php:620
2053
  msgid "No scrape."
2054
  msgstr ""
2055
 
2056
+ #: inc/admin/admin-notifications-center.php:625
2057
  msgid "No domain found."
2058
  msgstr ""
2059
 
2060
+ #: inc/admin/admin-notifications-center.php:635
2061
  msgid "Server IP Address: "
2062
  msgstr ""
2063
 
2064
+ #: inc/admin/admin-notifications-center.php:638
2065
  msgid "Last scrape: "
2066
  msgstr ""
2067
 
2068
+ #: inc/admin/admin-notifications-center.php:639
2069
  msgid "Number of websites on your server: "
2070
  msgstr ""
2071
 
2072
+ #: inc/admin/admin-notifications-center.php:652
2073
  msgid "Get list"
2074
  msgstr ""
2075
 
2076
+ #: inc/admin/admin-notifications-center.php:661
2077
  msgid "Our blog: SEO news, how-to, tips and tricks..."
2078
  msgstr ""
2079
 
2080
+ #: inc/admin/admin-notifications-center.php:662
2081
  msgid "Upload a list of links to disavow to Google"
2082
  msgstr ""
2083
 
2084
+ #: inc/admin/admin-notifications-center.php:663
2085
  msgid "Google Trends"
2086
  msgstr ""
2087
 
2088
+ #: inc/admin/admin-notifications-center.php:665
2089
  msgid ""
2090
  "Image SEO plugin to optimize your image ALT texts and names for Search "
2091
  "Engines."
2092
  msgstr ""
2093
 
2094
+ #: inc/admin/admin-notifications-center.php:667
2095
  msgid "Dareboost: Test, analyze and optimize your website"
2096
  msgstr ""
2097
 
2098
+ #: inc/admin/admin-notifications-center.php:668
2099
  msgid "Google Campaign URL Builder tool"
2100
  msgstr ""
2101
 
2352
  "any WP Meta SEO data."
2353
  msgstr ""
2354
 
2355
+ #: inc/admin/admin-wizard.php:415 inc/admin/admin-wizard.php:845
2356
  msgid "Next step"
2357
  msgstr ""
2358
 
2571
  msgid "Your site is now ready for search engines!"
2572
  msgstr ""
2573
 
2574
+ #: inc/admin/admin-wizard.php:813 inc/functions/options-advanced-admin.php:18
2575
  msgid "Welcome to SEOPress PRO!"
2576
  msgstr ""
2577
 
2578
+ #: inc/admin/admin-wizard.php:816 inc/functions/options-advanced-admin.php:19
2579
  msgid ""
2580
  "Please activate your license to receive automatic updates and get premium "
2581
  "support."
2582
  msgstr ""
2583
 
2584
+ #: inc/admin/admin-wizard.php:821 inc/functions/options-advanced-admin.php:20
2585
  msgid "Activate License"
2586
  msgstr ""
2587
 
2588
+ #: inc/admin/admin-wizard.php:828
2589
  msgid "Go PRO with SEOPress PRO!"
2590
  msgstr ""
2591
 
2592
+ #: inc/admin/admin-wizard.php:831
2593
  msgid ""
2594
  "When you upgrade to the PRO version, you get a lot of additional features, "
2595
  "like automatic and manual schemas, Video Sitemap, WooCommerce enhancements, "
2596
  "Analytics statistics in your Dashboard, breadcrumbs, redirections, and more."
2597
  msgstr ""
2598
 
2599
+ #: inc/admin/admin-wizard.php:836
2600
  msgid "Buy SEOPress PRO - $39 / unlimited sites"
2601
  msgstr ""
2602
 
2603
+ #: inc/admin/admin-wizard.php:846
2604
  msgid "Create your XML sitemaps"
2605
  msgstr ""
2606
 
2607
+ #: inc/admin/admin-wizard.php:847
2608
  msgid "Build custom XML sitemaps to improve Google's crawling of your site."
2609
  msgstr ""
2610
 
2611
+ #: inc/admin/admin-wizard.php:852
2612
  msgid "Configure your XML sitemaps"
2613
  msgstr ""
2614
 
2615
+ #: inc/admin/admin-wizard.php:860
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2616
  msgid "You can also:"
2617
  msgstr ""
2618
 
2619
+ #: inc/admin/admin-wizard.php:865
2620
  msgid "Visit Dashboard"
2621
  msgstr ""
2622
 
2623
+ #: inc/admin/admin-wizard.php:868
2624
  msgid "Review Settings"
2625
  msgstr ""
2626
 
2627
+ #: inc/admin/admin-wizard.php:871
2628
  msgid "Knowledge base"
2629
  msgstr ""
2630
 
2636
  msgid "Dashboard"
2637
  msgstr ""
2638
 
 
 
 
 
2639
  #: inc/admin/admin.php:203
2640
  #, php-format
2641
  msgid "%%sep%%"
3135
  msgid "Data"
3136
  msgstr ""
3137
 
3138
+ #: inc/admin/admin.php:673 seopress.php:417
3139
  msgid "Settings"
3140
  msgstr ""
3141
 
5180
  "Hook to filter structured data types metabox call by post type - new window"
5181
  msgstr ""
5182
 
5183
+ #: inc/admin/adminbar.php:73
5184
  msgid "BOT"
5185
  msgstr ""
5186
 
5187
+ #: inc/admin/adminbar.php:109
5188
  msgid "Broken Links"
5189
  msgstr ""
5190
 
5191
+ #: inc/admin/adminbar.php:123
5192
  msgid "Configuration wizard"
5193
  msgstr ""
5194
 
5375
  msgid "Please upload a valid .txt file"
5376
  msgstr ""
5377
 
5378
+ #: inc/functions/sitemap/template-xml-sitemaps-xsl.php:123
5379
  msgid "XML Sitemaps"
5380
  msgstr ""
5381
 
5382
+ #: inc/functions/sitemap/template-xml-sitemaps-xsl.php:126
5383
  #, php-format
5384
  msgid "This XML Sitemap Index file contains %s sitemaps."
5385
  msgstr ""
5386
 
5387
+ #: inc/functions/sitemap/template-xml-sitemaps-xsl.php:129
5388
  #, php-format
5389
  msgid "This XML Sitemap contains %s URL(s)."
5390
  msgstr ""
5391
 
5392
+ #: inc/functions/variables/dynamic-variables.php:66
5393
  #, php-format
5394
  msgid "Page %d of %2$d"
5395
  msgstr ""
5398
  msgid "has been successfully updated!"
5399
  msgstr ""
5400
 
5401
+ #: seopress.php:354
5402
  msgid "You like SEOPress? Don't forget to rate it 5 stars!"
5403
  msgstr ""
5404
 
5405
+ #: seopress.php:418
5406
  msgid "Docs"
5407
  msgstr ""
5408
 
5409
+ #: seopress.php:419
5410
  msgid "Configuration Wizard"
5411
  msgstr ""
5412
 
5413
+ #: seopress.php:421
5414
  msgid "GO PRO!"
5415
  msgstr ""
5416
+
5417
+ #: seopress.php:1174
5418
+ msgid "Follow us:"
5419
+ msgstr ""
5420
+
5421
+ #: seopress.php:1181
5422
+ msgid "Like our Facebook page"
5423
+ msgstr ""
5424
+
5425
+ #: seopress.php:1187
5426
+ msgid "Join our Facebook Community group"
5427
+ msgstr ""
5428
+
5429
+ #: seopress.php:1193
5430
+ msgid "Watch our guided tour videos to learn more about SEOPress"
5431
+ msgstr ""
5432
+
5433
+ #: seopress.php:1208
5434
+ msgid "Read our blog posts about SEO concepts, tutorials and more"
5435
+ msgstr ""
5436
+
5437
+ #: seopress.php:1220
5438
+ msgid "The off side of SEOPress"
5439
+ msgstr ""
readme.txt CHANGED
@@ -6,7 +6,7 @@ Tags: SEO, XML sitemap, meta title, open graph, content analysis, knowledge grap
6
  Requires at least: 4.7+
7
  Tested up to: 5.4
8
  Requires PHP: 5.6
9
- Stable tag: 3.8.5.1
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
@@ -102,11 +102,11 @@ SEOPress is a powerful WordPress SEO plugin to optimize your SEO, boost your tra
102
  <li>🇷🇺 Русский (Russian) - professional translation</li>
103
  <li>🇯🇵 日本語 (Japanese) - professional translation</li>
104
  <li>🇮🇳 हिन्दी (Hindi) - professional translation</li>
 
105
  <li>🇬🇷 Ελληνικά (Greek)</li>
106
  <li>🇧🇬 Български (Bulgarian)</li>
107
  <li>🇮🇩 Bahasa Indonesia (Indonesian)</li>
108
  <li>🇮🇹 Italiano (Italian)</li>
109
- <li>🇧🇷 Português do Brasil (Portuguese (Brazil))</li>
110
  <li>🇻🇳 Loki Web (Vietnamese)</li>
111
  <li>🇷🇴 Română (Romanian)</li>
112
  <li>🇸🇦 العربية (Arabic)</li>
@@ -226,6 +226,35 @@ You're theme is probably using a deprecated function to handle the title. <a hre
226
  7. Installation Wizard
227
 
228
  == Changelog ==
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
229
  = 3.8.5.1 =
230
  * FIX Fatal error with Google Preview with some configurations
231
  = 3.8.5 =
6
  Requires at least: 4.7+
7
  Tested up to: 5.4
8
  Requires PHP: 5.6
9
+ Stable tag: 3.8.6
10
  License: GPLv2 or later
11
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
12
 
102
  <li>🇷🇺 Русский (Russian) - professional translation</li>
103
  <li>🇯🇵 日本語 (Japanese) - professional translation</li>
104
  <li>🇮🇳 हिन्दी (Hindi) - professional translation</li>
105
+ <li>🇧🇷 Português do Brasil (Portuguese (Brazil)) - professional translation</li>
106
  <li>🇬🇷 Ελληνικά (Greek)</li>
107
  <li>🇧🇬 Български (Bulgarian)</li>
108
  <li>🇮🇩 Bahasa Indonesia (Indonesian)</li>
109
  <li>🇮🇹 Italiano (Italian)</li>
 
110
  <li>🇻🇳 Loki Web (Vietnamese)</li>
111
  <li>🇷🇴 Română (Romanian)</li>
112
  <li>🇸🇦 العربية (Arabic)</li>
226
  7. Installation Wizard
227
 
228
  == Changelog ==
229
+ = 3.8.6 =
230
+ * NEW Elementor Breadcrumbs widget 🎉 (PRO)
231
+ * NEW Set a primary category for WooCommerce products 🎉 (SEO metabox, Advanced tab)
232
+ * NEW 'seopress_sitemaps_external_link' hook to add external sitemaps URL to index sitemaps (https://www.seopress.org/support/hooks/add-external-urls-to-xml-index-sitemaps/)
233
+ * NEW 'seopress_sitemaps_news_keywords' hook to add keywords to Google News sitemap (https://www.seopress.org/support/hooks/add-target-keywords-to-google-news-xml-sitemaps/)
234
+ * NEW Add post type column in broken link checker
235
+ * NEW Brazilian Portuguese language (Free and PRO) 🇧🇷
236
+ * INFO Add images to Google News Sitemap (PRO)
237
+ * INFO Remove shop page option in breadcrumbs is back
238
+ * INFO Improve "Test redirection" link for Redirections
239
+ * INFO Improve WPML compatibility for redirects
240
+ * INFO i18n Google Analytics (props to @lriaudel)
241
+ * INFO Improve security (props to @eringerm)
242
+ * INFO Improve compatibility with Query Monitor (props to @sabrinazeidan)
243
+ * INFO Remove Jquery dependency from Google Analytics tracking
244
+ * FIX Conflict with GiveWP
245
+ * FIX Target keyword with special characters
246
+ * FIX Primary category for posts
247
+ * FIX Improved saving of content analysis
248
+ * FIX Flush permalinks button from Sitemap settings page
249
+ * FIX Duplicate query with 404/301 feature enabled
250
+ * FIX Alternative text check for content analysis
251
+ * FIX Warning illegal offset when adding a new post without content
252
+ * FIX WordPress error in Google Preview
253
+ * FIX JS Warning if no social image found from post editing
254
+ * FIX Remove /category/ option after adding new category to avoid manual flushing
255
+ * FIX Notice: Undefined variable: seopress_get_ua (props to @wpchannel)
256
+ * FIX Remove canonical / social meta tags on 404 pages (props to @bartekduls)
257
+ * FIX Default currency for automatic product schema is now based on WC / EDD currency settings
258
  = 3.8.5.1 =
259
  * FIX Fatal error with Google Preview with some configurations
260
  = 3.8.5 =
seopress.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: SEOPress
4
  Plugin URI: https://www.seopress.org/
5
  Description: One of the best SEO plugins for WordPress.
6
- Version: 3.8.5.1
7
  Author: SEOPress
8
  Author URI: https://www.seopress.org/
9
  License: GPLv2
@@ -54,7 +54,7 @@ register_deactivation_hook(__FILE__, 'seopress_deactivation');
54
  ///////////////////////////////////////////////////////////////////////////////////////////////////
55
  //Define
56
  ///////////////////////////////////////////////////////////////////////////////////////////////////
57
- define( 'SEOPRESS_VERSION', '3.8.5.1' );
58
  define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
59
 
60
  ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -229,7 +229,7 @@ function seopress_add_admin_options_scripts( $hook ) {
229
 
230
  $seopress_ajax_permalinks = [
231
  'seopress_nonce' => wp_create_nonce('seopress_flush_permalinks_nonce'),
232
- 'seopress_flush_permalinks' => admin_url('options-permalink.php'),
233
  ];
234
  wp_localize_script( 'seopress-xml-ajax', 'seopressAjaxResetPermalinks', $seopress_ajax_permalinks );
235
 
@@ -336,6 +336,15 @@ function seopress_compatibility_woocommerce() {
336
  }
337
  add_action( 'wp_head', 'seopress_compatibility_woocommerce', 0 );
338
 
 
 
 
 
 
 
 
 
 
339
  ///////////////////////////////////////////////////////////////////////////////////////////////////
340
  //Credits footer
341
  ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -649,6 +658,17 @@ function seopress_xml_sitemap_author_enable_option() {
649
  }
650
  }
651
 
 
 
 
 
 
 
 
 
 
 
 
652
  //Rewrite Rules for XML Sitemap
653
  if (seopress_xml_sitemap_general_enable_option() =='1' && seopress_get_toggle_option('xml-sitemap') =='1') {
654
  add_action( 'init', 'seopress_xml_sitemap_rewrite' );
@@ -782,21 +802,34 @@ if (seopress_xml_sitemap_general_enable_option() =='1' && seopress_get_toggle_op
782
  return $template;
783
  }
784
  }
785
-
 
 
 
786
  ///////////////////////////////////////////////////////////////////////////////////////////////////
787
  // Remove Admin Bar with Content Analysis
788
  ///////////////////////////////////////////////////////////////////////////////////////////////////
789
- function seopress_remove_admin_bar() {
790
  if ( current_user_can( 'edit_posts' ) ) {
791
  if ( isset($_GET['no_admin_bar'] ) && '1' === $_GET['no_admin_bar'] ) {
 
 
792
  add_filter( 'show_admin_bar', '__return_false' );
 
 
 
 
 
 
 
 
793
  if (function_exists('ct_template_output')) { //disable for Oxygen
794
  add_action( 'template_redirect', 'seopress_get_oxygen_content' );
795
  }
796
  }
797
  }
798
  }
799
- add_action('plugins_loaded', 'seopress_remove_admin_bar');
800
 
801
  ///////////////////////////////////////////////////////////////////////////////////////////////////
802
  // Test abolute URLs (return true if absolute)
@@ -841,6 +874,24 @@ function seopress_tooltip($tooltip_title, $tooltip_desc, $tooltip_code) {
841
  <span class="sp-tooltip-headings">'.$tooltip_title.'</span>
842
  <span class="sp-tooltip-desc">'.$tooltip_desc.'</span>
843
  <span class="sp-tooltip-code">'.$tooltip_code.'</span>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
844
  </span>';
845
 
846
  return $html;
@@ -1074,11 +1125,16 @@ function seopress_get_oxygen_content() {
1074
 
1075
  $seopress_get_the_content = ct_template_output();
1076
 
 
 
 
 
 
1077
  if ($seopress_get_the_content !='') {
1078
 
1079
  //Get Target Keywords
1080
  if (get_post_meta(get_the_ID(),'_seopress_analysis_target_kw',true)) {
1081
- $seopress_analysis_target_kw = array_filter(explode(',', strtolower(get_post_meta(get_the_ID(),'_seopress_analysis_target_kw',true))));
1082
 
1083
  //Keywords density
1084
  foreach ($seopress_analysis_target_kw as $kw) {
@@ -1091,11 +1147,81 @@ function seopress_get_oxygen_content() {
1091
  //Words Counter
1092
  $data['words_counter'] = preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", strip_tags(wp_filter_nohtml_kses($seopress_get_the_content)), $matches);
1093
 
1094
- $words_counter_unique = count(array_unique($matches[0]));
 
 
 
 
1095
  $data['words_counter_unique'] = $words_counter_unique;
1096
 
1097
  //Update analysis
1098
  update_post_meta(get_the_ID(), '_seopress_analysis_data', $data);
1099
  }
1100
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1101
  }
3
  Plugin Name: SEOPress
4
  Plugin URI: https://www.seopress.org/
5
  Description: One of the best SEO plugins for WordPress.
6
+ Version: 3.8.6
7
  Author: SEOPress
8
  Author URI: https://www.seopress.org/
9
  License: GPLv2
54
  ///////////////////////////////////////////////////////////////////////////////////////////////////
55
  //Define
56
  ///////////////////////////////////////////////////////////////////////////////////////////////////
57
+ define( 'SEOPRESS_VERSION', '3.8.6' );
58
  define( 'SEOPRESS_AUTHOR', 'Benjamin Denis' );
59
 
60
  ///////////////////////////////////////////////////////////////////////////////////////////////////
229
 
230
  $seopress_ajax_permalinks = [
231
  'seopress_nonce' => wp_create_nonce('seopress_flush_permalinks_nonce'),
232
+ 'seopress_ajax_permalinks' => admin_url( 'admin-ajax.php'),
233
  ];
234
  wp_localize_script( 'seopress-xml-ajax', 'seopressAjaxResetPermalinks', $seopress_ajax_permalinks );
235
 
336
  }
337
  add_action( 'wp_head', 'seopress_compatibility_woocommerce', 0 );
338
 
339
+ /**
340
+ * Remove WPML home url filter
341
+ *
342
+ * @since 3.8.6
343
+ */
344
+ function seopress_remove_wpml_home_url_filter( $home_url, $url, $path, $orig_scheme, $blog_id ) {
345
+ return $url;
346
+ }
347
+
348
  ///////////////////////////////////////////////////////////////////////////////////////////////////
349
  //Credits footer
350
  ///////////////////////////////////////////////////////////////////////////////////////////////////
658
  }
659
  }
660
 
661
+ function seopress_xml_sitemap_img_enable_option() {
662
+ $seopress_xml_sitemap_img_enable_option = get_option("seopress_xml_sitemap_option_name");
663
+ if ( ! empty ( $seopress_xml_sitemap_img_enable_option ) ) {
664
+ foreach ($seopress_xml_sitemap_img_enable_option as $key => $seopress_xml_sitemap_img_enable_value)
665
+ $options[$key] = $seopress_xml_sitemap_img_enable_value;
666
+ if (isset($seopress_xml_sitemap_img_enable_option['seopress_xml_sitemap_img_enable'])) {
667
+ return $seopress_xml_sitemap_img_enable_option['seopress_xml_sitemap_img_enable'];
668
+ }
669
+ }
670
+ }
671
+
672
  //Rewrite Rules for XML Sitemap
673
  if (seopress_xml_sitemap_general_enable_option() =='1' && seopress_get_toggle_option('xml-sitemap') =='1') {
674
  add_action( 'init', 'seopress_xml_sitemap_rewrite' );
802
  return $template;
803
  }
804
  }
805
+ function seopress_disable_qm( $allcaps, $caps, $args ) {
806
+ $allcaps['view_query_monitor'] = false;
807
+ return $allcaps;
808
+ }
809
  ///////////////////////////////////////////////////////////////////////////////////////////////////
810
  // Remove Admin Bar with Content Analysis
811
  ///////////////////////////////////////////////////////////////////////////////////////////////////
812
+ function seopress_clean_content_analysis() {
813
  if ( current_user_can( 'edit_posts' ) ) {
814
  if ( isset($_GET['no_admin_bar'] ) && '1' === $_GET['no_admin_bar'] ) {
815
+
816
+ //Remove admin bar
817
  add_filter( 'show_admin_bar', '__return_false' );
818
+
819
+ //Disable Query Monitor
820
+ add_filter( 'user_has_cap', 'seopress_disable_qm', 10, 3);
821
+
822
+ //Disable wptexturize
823
+ add_filter('run_wptexturize', '__return_false');
824
+
825
+ //Oxygen compatibility
826
  if (function_exists('ct_template_output')) { //disable for Oxygen
827
  add_action( 'template_redirect', 'seopress_get_oxygen_content' );
828
  }
829
  }
830
  }
831
  }
832
+ add_action('plugins_loaded', 'seopress_clean_content_analysis');
833
 
834
  ///////////////////////////////////////////////////////////////////////////////////////////////////
835
  // Test abolute URLs (return true if absolute)
874
  <span class="sp-tooltip-headings">'.$tooltip_title.'</span>
875
  <span class="sp-tooltip-desc">'.$tooltip_desc.'</span>
876
  <span class="sp-tooltip-code">'.$tooltip_code.'</span>
877
+ </span></span>';
878
+
879
+ return $html;
880
+ }
881
+
882
+ /**
883
+ * Generate Tooltip (alternative version)
884
+ * @since 3.8.6
885
+ * @param string $tooltip_title, $tooltip_desc, $tooltip_code
886
+ * @return string tooltip title, tooltip description, tooltip url
887
+ * @author Benjamin
888
+ */
889
+ function seopress_tooltip_alt($tooltip_anchor, $tooltip_desc) {
890
+ $html =
891
+ '<span class="sp-tooltip alt">'.$tooltip_anchor.'
892
+ <span class="sp-tooltiptext">
893
+ <span class="sp-tooltip-desc">'.$tooltip_desc.'</span>
894
+ </span>
895
  </span>';
896
 
897
  return $html;
1125
 
1126
  $seopress_get_the_content = ct_template_output();
1127
 
1128
+ if ($seopress_get_the_content =='') {
1129
+ //Get post content
1130
+ $seopress_get_the_content = apply_filters('the_content', get_post_field('post_content', get_the_ID()));
1131
+ }
1132
+
1133
  if ($seopress_get_the_content !='') {
1134
 
1135
  //Get Target Keywords
1136
  if (get_post_meta(get_the_ID(),'_seopress_analysis_target_kw',true)) {
1137
+ $seopress_analysis_target_kw = array_filter(explode(',', strtolower(esc_attr(get_post_meta(get_the_ID(),'_seopress_analysis_target_kw',true)))));
1138
 
1139
  //Keywords density
1140
  foreach ($seopress_analysis_target_kw as $kw) {
1147
  //Words Counter
1148
  $data['words_counter'] = preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", strip_tags(wp_filter_nohtml_kses($seopress_get_the_content)), $matches);
1149
 
1150
+ if (!empty($matches[0])) {
1151
+ $words_counter_unique = count(array_unique($matches[0]));
1152
+ } else {
1153
+ $words_counter_unique = '0';
1154
+ }
1155
  $data['words_counter_unique'] = $words_counter_unique;
1156
 
1157
  //Update analysis
1158
  update_post_meta(get_the_ID(), '_seopress_analysis_data', $data);
1159
  }
1160
  }
1161
+ }
1162
+
1163
+ /**
1164
+ * Output follow us links to wizard
1165
+ *
1166
+ * @since 3.8.6
1167
+ * @author Benjamin Denis
1168
+ *
1169
+ **/
1170
+ function seopress_wizard_follow_us() {
1171
+ ?>
1172
+ <li class="seopress-wizard-additional-steps">
1173
+ <div class="seopress-wizard-next-step-description">
1174
+ <p class="next-step-heading"><?php esc_html_e( 'Follow us:', 'wp-seopress' ); ?></p>
1175
+ </div>
1176
+ <div class="seopress-wizard-next-step-action step">
1177
+ <ul class="recommended-step">
1178
+ <li class="recommended-item">
1179
+ <a href="https://www.facebook.com/seopresspro/" target="_blank">
1180
+ <span class="dashicons dashicons-facebook"></span>
1181
+ <?php _e('Like our Facebook page','wp-seopress'); ?>
1182
+ </a>
1183
+ </li>
1184
+ <li class="recommended-item">
1185
+ <a href="https://www.facebook.com/groups/seopress/" target="_blank">
1186
+ <span class="dashicons dashicons-facebook"></span>
1187
+ <?php _e('Join our Facebook Community group','wp-seopress'); ?>
1188
+ </a>
1189
+ </li>
1190
+ <li class="recommended-item">
1191
+ <a href="https://www.youtube.com/seopress" target="_blank">
1192
+ <span class="dashicons dashicons-video-alt3"></span>
1193
+ <?php _e('Watch our guided tour videos to learn more about SEOPress','wp-seopress'); ?>
1194
+ </a>
1195
+ </li>
1196
+ <li class="recommended-item">
1197
+ <?php
1198
+ if (function_exists('seopress_get_locale')) {
1199
+ if (seopress_get_locale() =='fr') {
1200
+ $link = 'https://www.seopress.org/fr/blog/category/tutoriels/?utm_source=plugin&utm_medium=wizard&utm_campaign=seopress';
1201
+ } else {
1202
+ $link = 'https://www.seopress.org/blog/how-to/?utm_source=plugin&utm_medium=wizard&utm_campaign=seopress';
1203
+ }
1204
+ }
1205
+ ?>
1206
+ <a href="<?php echo $link; ?>" target="_blank">
1207
+ <span class="dashicons dashicons-format-aside"></span>
1208
+ <?php _e('Read our blog posts about SEO concepts, tutorials and more','wp-seopress'); ?>
1209
+ </a>
1210
+ </li>
1211
+ <li class="recommended-item">
1212
+ <a href="https://twitter.com/wp_seopress" target="_blank">
1213
+ <span class="dashicons dashicons-twitter"></span>
1214
+ <?php _e('Follow us on Twitter','wp-seopress'); ?>
1215
+ </a>
1216
+ </li>
1217
+ <li class="recommended-item">
1218
+ <a href="https://www.instagram.com/wp_seopress/" target="_blank">
1219
+ <span class="dashicons dashicons-instagram"></span>
1220
+ <?php _e('The off side of SEOPress','wp-seopress'); ?>
1221
+ </a>
1222
+ </li>
1223
+ </ul>
1224
+ </div>
1225
+ </li>
1226
+ <?php
1227
  }