page.php is not called, falls back to index.php

If you give a look to get_template_part it says that <?php get_template_part( 'loop', 'index' ); ?>
will do a PHP require() for the first file that exists among these, in this priority:

  1. wp-content/themes/twentytenchild/loop-index.php
  2. wp-content/themes/twentyten/loop-index.php
  3. wp-content/themes/twentytenchild/loop.php
  4. wp-content/themes/twentyten/loop.php

so your code would default to content.php, not page.php.


<?php get_template_part('page') ?> should just load a partial named page.php and shouldn’t be slow at all.

But the point is that if you are not using a custom template for the “basic” pages you shouldn’t be using get_template_part inside the page.php at all. That page.php get’s called when it’s any single page that you haven’t assigned a template to.

So try making your page.php like this

<?php get_header() ?>

<?php
    // Start the loop.
    while ( have_posts() ) : the_post();

        // Include the page content.
       the_content();

    // End the loop.
    endwhile;
?>

<?php get_footer() ?>