esc_html__('Image SEO', 'siteseo'), 'tab_advanced' => esc_html__('Advanced', 'siteseo'), 'tab_appearance' => esc_html__('Appearance', 'siteseo'), 'tab_security' => esc_html__('Security', 'siteseo'), 'tab_breadcrumbs' => esc_html('Breadcrumbs','siteseo'), 'tab_toc' => esc_html('Table of content', 'siteseo'), 'tab_robots_txt' => esc_html('robots.txt','siteseo'), 'tab_htaccess' => esc_html('htaccess','siteseo') ]; echo'
'; wp_nonce_field('siteseo_advance_settings'); $advanced_toggle = isset($siteseo->setting_enabled['toggle-advanced']) ? $siteseo->setting_enabled['toggle-advanced'] : ''; $nonce = wp_create_nonce('siteseo_toggle_nonce'); Dashbord::render_toggle('Image SEO & Advanced settings - SiteSEO', 'advanced_toggle', $advanced_toggle, $nonce); echo'
'; self::image_seo(); echo'
'; self::advanced(); echo'
'; self::appearance(); echo'
'; self::security(); echo'
'; self::breadcrumbs(); echo'
'; self::toc_tab(); echo'
'; self::robots_tab(); echo'
'; self::htaccess(); echo'
'; siteseo_submit_button(__('Save changes', 'siteseo')); echo''; } static function image_seo(){ global $siteseo; if(!empty($_POST['submit'])){ self::save_settings(); } //$options = $siteseo->$advanced_settings; $options = get_option('siteseo_advanced_option_name'); $option_attachment = isset($options['advanced_attachments']) ? $options['advanced_attachments'] : ''; $option_attachment_file = isset($options['adavnced_attachments_file']) ? $options['adavnced_attachments_file'] : ''; $option_clean_filename = isset($options['advanced_clean_filename']) ? $options['advanced_clean_filename'] : ''; $option_img_title = isset($options['advanced_image_auto_title_editor']) ? $options['advanced_image_auto_title_editor'] : ''; $option_img_alt = isset($options['advanced_image_auto_alt_editor']) ? $options['advanced_image_auto_alt_editor'] : ''; $option_target_key = isset($options['advanced_image_auto_alt_target_kw']) ? $options['advanced_image_auto_alt_target_kw'] : ''; $option_cap_img = isset($options['advanced_image_auto_caption_editor']) ? $options['advanced_image_auto_caption_editor'] : ''; $option_desc_img = isset($options['advanced_image_auto_desc_editor']) ? $options['advanced_image_auto_desc_editor'] : ''; echo'

Image SEO

Images can generate a lot of traffic to your site. Make sure to always add alternative texts, optimize their file size, filename etc..

Redirect attachment pages to post parent
Redirect attachment pages to their file URL

If this option is checked, it will take precedence over the redirection of attachments to the post parent.

Cleaning media filename

e.g. "ExãMple 1 cópy!.jpg" => "example-1-copy.jpg"

Automatically set the image Title

we use product title for WooCommerce products.

Automatically set the image Alt txt
Automatically set the image Alt text from target keywords

This setting will be applied to images without any alt text only on frontend. This setting is retroactive. If you turn it off, alt texts that were previously empty will be empty again.

Automatically set the image Caption
Automatically set the image Description
'; } static function advanced(){ global $siteseo; if(!empty($_POST['submit'])){ save_settings(); } //$options = $siteseo->advanced_settings; $options = get_option('siteseo_advanced_option_name'); $option_taxonomy_desc = isset($options['advanced_tax_desc_editor']) ? $options['advanced_tax_desc_editor'] : ''; $option_category_url = isset($options['advanced_category_url']) ? $options['advanced_category_url'] : ''; $option_noreferrer_link = isset($options['advanced_noreferrer']) ? $options['advanced_noreferrer'] : ''; $option_wp_generator = isset($options['advanced_wp_generator']) ? $options['advanced_wp_generator'] : ''; $option_hentry_post = isset($options['advanced_hentry']) ? $options['advanced_hentry'] : ''; $option_author_url = isset($options['advanced_comments_author_url']) ? $options['advanced_comments_author_url'] : ''; $option_site_fileds = isset($options['advanced_comments_website']) ? $options['advanced_comments_website'] : ''; $option_rel_attributes = isset($options['advanced_comments_form_link']) ? $options['advanced_comments_form_link'] : ''; $option_shortlink = isset($options['advanced_wp_shortlink']) ? $options['advanced_wp_shortlink'] : ''; $option_wlw_meta_tag = isset($options['advanced_wp_wlw']) ? $options['advanced_wp_wlw'] : ''; $option_rsd_meta_tag = isset($options['advanced_wp_rsd']) ? $options['advanced_wp_rsd'] : ''; $option_google_meta_value = isset($options['advanced_google']) ? $options['advanced_google'] : ''; $option_bring_meta_value = isset($options['advanced_bing']) ? $options['advanced_bing'] : ''; $option_pinterest_meta_value = isset($options['advanced_pinterest']) ? $options['advanced_pinterest'] : ''; $option_yandex_meta_value = isset($options['advanced_yandex']) ? $options['advanced_yandex'] : ''; echo'

Advanced

Advanced SEO options for advanced users.

Add WP Editor to taxonomy description textarea
Remove /category/ in URL

e.g. "https://example.com/category/my-post-category/" => "https://example.com/my-post-category/"

Remove product category base from permalinks
 

'.wp_kses_post(__('You need to enable WooCommerce to apply these settings.', 'siteseo')).'

Remove noreferrer link attribute in post content

Useful for affiliate links (eg: Amazon).

Remove WordPress meta generator tag
' . esc_html('') . '
Remove hentry post class
Remove author URL
Remove website field from comment form
Add "nofollow noopener noreferrer" rel attributes to the comments form link
' . esc_html('https://www.example.com/my-blog-post/#respond') . '
Remove WordPress shortlink meta tag
' . esc_html('') . '
Remove Windows Live Writer meta tag
' . esc_html('') . '
Remove RSD meta tag

WordPress Site Health feature will return a HTTPS warning if you enable this option. This is a false positive of course.

' . esc_html('') . '
Google site verification

If your site is already verified in Google Search Console, you can leave this field empty.

Bing site verification

If your site is already verified in Bing Webmaster tools, you can leave this field empty.

Pinterest site verification
Yandex site verification
'; } static function appearance(){ global $siteseo; if(!empty($_POST['submit'])){ self::save_settings(); } $appearance_fields =[ 'metaboxes'=>'Metaboxes', 'Admin-bar'=>'Admin bar', 'SEO-Dashbord' => 'SEO Dashbord', 'Columns' => 'Columns', 'Misc' =>'Misc', ]; echo'
'; $is_first = true; foreach($appearance_fields as $post_key => $post_val){ $active_class = $is_first ? 'active' : ''; echo ''.$post_val.''; $is_first = false; } echo'

Appearance

Customize the plugin to fit your needs.

Metaboxes

'.esc_html('Edit your SEO metadata directly from your favorite page builder.','siteseo').'

Universal Metabox (Gutenberg)
Disable Universal Metabox '.__('Disable the universal SEO metabox','siteseo').'
Move SEO metaboxs position
Remove Content Analysis Metabox

By checking this option, we will no longer track the significant keywords.

Hide Genesis SEO Metabox
Hide advice in Structured Data Types metabox

Admin bar

The admin bar appears on the top of your pages when logged in to your WP admin.

SEO in admin bar
Noindex in admin bar

SEO Dashboard

Show Title tag column in post types
Show Meta description column in post types
'; } static function security(){ global $siteseo; if(!empty($_POST['submit'])){ self::save_settings(); } echo'

Security

'; } static function breadcrumbs(){ if(!empty($_POST['submit'])){ siteseo_save_advanced_settings(); } $options = get_option('siteseo_advanced_option_name', []); $enabled = !empty($options) && isset($options['breadcrumbs_enable']); $separators = ['-', '|', '/', '←', '→', '↠', '⇒', '►', '—', '•', '»', '›', '–']; $separator = !empty($options['breadcrumbs_seperator']) ? $options['breadcrumbs_seperator'] : ''; $custom_separator = !empty($options['breadcrumbs_custom_seperator']) ? $options['breadcrumbs_custom_seperator'] : ''; $hide_home = isset($options['breadcrumbs_home']) ? $options['breadcrumbs_home'] : false; $home_label = !empty($options['breadcrumb_home_label']) ? $options['breadcrumb_home_label'] : __('Home', 'siteseo'); $prefix = !empty($options['breadcrumb_prefix']) ? $options['breadcrumb_prefix'] : ''; echo'

' . esc_html__('Breadcrumbs', 'siteseo') . '

' . esc_html__('Breadcrumbs work as a navigation tool for users, helping them know their current location and providing quick links to their previous browsing path, which improves the user experience.', 'siteseo') . '

' . esc_html__('Enable Breadcrumbs', 'siteseo') . '
' . esc_html__('Breadcrumbs Display Methods', 'siteseo') . '

' . esc_html__('Gutenberg Block', 'siteseo') . '

' . esc_html__('Generate Block can be accessed by going to edit post using the Gutenberg Editor, the default editor of WordPress. There search for Breadcrumbs block.', 'siteseo') . '

' . esc_html__('Shortcode', 'siteseo') . '

' . esc_html__('WordPress shortcodes are shortcuts ([shortcode]) that insert features without coding. You can use these shortcodes with Classic Editor, Gutenberg, or any other editor. Copy the shortcode below and use it in the editor.', 'siteseo') . '

[siteseo_breadcrumbs]

' . esc_html__('PHP Code', 'siteseo') . '

' . esc_html__('You can add the breadcrumbs by directly adding PHP code. Make sure you are aware of what you are doing. Use the code below anywhere in your theme.', 'siteseo') . '

' . esc_html("") . '
' . esc_html__('Separator', 'siteseo') . '
'; foreach($separators as $sep){ $checked = ($separator == $sep) ? 'checked' : ''; echo''; } echo'
' . esc_html__('Home Settings', 'siteseo') . '
' . esc_html__('Prefix', 'siteseo') . '
'; } static function robots_tab(){ global $siteseo; if(!empty($_POST['submit'])){ self::save_settings(); } echo'

'. esc_html__('Manage your robots.txt file here. Adjust settings according to your SEO requirements.', 'siteseo') . '

'; echo''; if(!file_exists(ABSPATH . 'robots.txt')){ echo''; } else{ echo''; } if(!file_exists(ABSPATH . 'robots.txt')){ echo'
'.esc_html__('Preview', 'siteseo').''.esc_html__('View Robots.txt', 'siteseo').'
'; return; } $robots_txt = file_exists(ABSPATH . 'robots.txt') ? file_get_contents(ABSPATH . 'robots.txt') : ''; echo' '.esc_html__('robots.txt File', 'siteseo').' '; } static function htaccess(){ global $siteseo; $home_path = get_home_path(); $htaccess_file = $home_path . '.htaccess'; if(!empty($_POST['submit'])){ self::save_settings(); } echo'

htaccess

'.esc_html('Edit your .htaccess file to configure advanced settings for your site','siteseo').'

'; if(!file_exists($htaccess_file) || !is_writable($htaccess_file)){ echo '

'.esc_html__('The .htaccess file does not exist or You do not have permission to edit the .htaccess file', 'siteseo').'

'; return; } echo'
'.esc_html__('Be careful editing this file. If any incorrect edits are made, your site could go down. You can restore the htaccess file by replacing it with the backup copy created by SiteSEO with name .htaccess_backup.siteseo', 'siteseo').'
'; $htaccess_code = file_get_contents($htaccess_file); echo'
Edit your htaccess file
'; } static function toc_tab(){ global $siteseo; if(!empty($_POST['submit'])){ self::save_settings(); } $options = get_option('siteseo_advanced_option_name'); $option_enable_toc = isset($options['toc_enable']) ? $options['toc_enable'] : ''; $option_toc_label = isset($options['toc_label']) ? $options['toc_label'] : ''; $option_toc_heading_type = isset($options['toc_heading_type']) ? $options['toc_heading_type'] : ''; $option_toc_excluded_headings = isset($options['toc_excluded_headings']) ? $options['toc_excluded_headings'] : ''; echo'

Table of Contents

A table of content works as an index section for your post or page. It helps search engines understand your page structure and users find specific sections quickly, which might help SEO, as it helps search engines better understand the structure of your content and also improves user experience.

'; echo'

To use Table of Content on your pages, you can use this shortcode

Enable TOC
TOC Label
Exclude Headings          
List Type